platform/upstream/libvpx.git
9 years agoMerge "Revert "vp9_ethread: include a pointer to mb in VP9_COMP""
Yunqing Wang [Thu, 20 Nov 2014 20:27:34 +0000 (12:27 -0800)]
Merge "Revert "vp9_ethread: include a pointer to mb in VP9_COMP""

9 years agoMerge "Enable ssse3 version of vp9_fdct8x8_quant"
Jingning Han [Thu, 20 Nov 2014 17:06:39 +0000 (09:06 -0800)]
Merge "Enable ssse3 version of vp9_fdct8x8_quant"

9 years agoRevert "vp9_ethread: include a pointer to mb in VP9_COMP"
Yunqing Wang [Thu, 20 Nov 2014 03:04:07 +0000 (19:04 -0800)]
Revert "vp9_ethread: include a pointer to mb in VP9_COMP"

This reverts commit 6906d218ddd1af97228a797f4558e402231d94f1.

Another way will be used to handle mb struct.

Change-Id: Ic1111a46b2b1ee00f8f9e3fcd4cf3eb6030b2dc4

9 years agoMerge "Changes SvcContext_t to SvcContext"
Deb Mukherjee [Thu, 20 Nov 2014 07:22:18 +0000 (23:22 -0800)]
Merge "Changes SvcContext_t to SvcContext"

9 years agoEnable ssse3 version of vp9_fdct8x8_quant
Jingning Han [Tue, 18 Nov 2014 20:37:59 +0000 (12:37 -0800)]
Enable ssse3 version of vp9_fdct8x8_quant

It improves the speed performance of vp9_fdct8x8_quant_sse2 by
about 5%.

Change-Id: I74b093ba4d81df64caf71ac7693f3d917f673097

9 years agoAdd a reset to rc tracking for dropped frames
Yaowu Xu [Wed, 19 Nov 2014 23:32:11 +0000 (15:32 -0800)]
Add a reset to rc tracking for dropped frames

VP9/DatarateTestVP9Large.ChangingDropFrameThresh/[34] fails post the
merge of commit#ffa06b37. This commit adds reset of rc tracking info
when frame is dropped, and fixes the causes of the bad interaction
between the tests and the previous commit.

Change-Id: I848acfd9fcb336359662274325190f94aac76eae

9 years agoMerge "Combine fdct8x8 and quantization process"
Jingning Han [Wed, 19 Nov 2014 19:17:44 +0000 (11:17 -0800)]
Merge "Combine fdct8x8 and quantization process"

9 years agoMerge "Add sse2 version for vp9_quantize_fp"
Jingning Han [Wed, 19 Nov 2014 19:17:36 +0000 (11:17 -0800)]
Merge "Add sse2 version for vp9_quantize_fp"

9 years agoCombine fdct8x8 and quantization process
Jingning Han [Tue, 18 Nov 2014 19:53:14 +0000 (11:53 -0800)]
Combine fdct8x8 and quantization process

This commit reworks the forward transform and quantization process
for 8x8 block coding. It combines the two operations in a single
function to save a store/load stage of the original transform
coefficients. Overall the speed -6 is slightly faster (around 1%
range). The compression performance of speed -6 is improved by
3.4%.

Change-Id: Id6628daef123f3e4649248735ec2ad7423629387

9 years agoMerge "Prevent severe rate control errors in CBR mode"
Yaowu Xu [Wed, 19 Nov 2014 00:56:06 +0000 (16:56 -0800)]
Merge "Prevent severe rate control errors in CBR mode"

9 years agoChanges SvcContext_t to SvcContext
Deb Mukherjee [Tue, 18 Nov 2014 20:25:31 +0000 (12:25 -0800)]
Changes SvcContext_t to SvcContext

Fixes a borg build.

Change-Id: I8cb510577e8d8bbc7a2e64f9e1bdfe883f49cb61

9 years agoMerge "Modify active_worst_quality setting for one pass CBR."
Marco [Tue, 18 Nov 2014 19:22:18 +0000 (11:22 -0800)]
Merge "Modify active_worst_quality setting for one pass CBR."

9 years agoMerge "change to call vp9_refining_search_sad() directly"
Yaowu Xu [Tue, 18 Nov 2014 17:14:02 +0000 (09:14 -0800)]
Merge "change to call vp9_refining_search_sad() directly"

9 years agoPrevent severe rate control errors in CBR mode
Yaowu Xu [Tue, 18 Nov 2014 16:52:21 +0000 (08:52 -0800)]
Prevent severe rate control errors in CBR mode

In rare cases, the interaction between rate correction factor and Q
choices may cause severe oscillating frame sizes that are way off
target bandwidth. This commit adds tracking of rate control results
for last two frames, and use the information to prevent oscillating
Q choices.

Change-Id: I9a6d125a15652b9bcac0e1fec6d7a1aedc4ed97e

9 years agoAdd sse2 version for vp9_quantize_fp
Jingning Han [Tue, 18 Nov 2014 16:58:09 +0000 (08:58 -0800)]
Add sse2 version for vp9_quantize_fp

vp9_quantize_fp is the quantization process used by rtc coding
mode. This commit adds a sse2 implementation of it. The
implementation is modified based on vp9_quantize_b_sse2. No speed
difference from ssse3 version.

Change-Id: I24949c5b27df160b4f35117d28858d269454e64a

9 years agoMerge "Add empty pointer check to pred buffering in rtc coding mode"
Jingning Han [Tue, 18 Nov 2014 01:40:54 +0000 (17:40 -0800)]
Merge "Add empty pointer check to pred buffering in rtc coding mode"

9 years agoModify active_worst_quality setting for one pass CBR.
Marco [Tue, 11 Nov 2014 19:01:55 +0000 (11:01 -0800)]
Modify active_worst_quality setting for one pass CBR.

Current setting had active_worst_quality set too high (close to worst_quality)
for first frame(s) following first key frame. This changes that to be somewhat
more aggressive in allowing active_worst_quality to be lower following key frame.

Also remove the 4/5 reduction in active_worst for key frame as
this should be set by the user qp_max setting.

Change-Id: I0530b3ddcc85c00e3eb7568de1b14a31206c4a4c

9 years agochange to call vp9_refining_search_sad() directly
Yaowu Xu [Mon, 17 Nov 2014 19:25:43 +0000 (11:25 -0800)]
change to call vp9_refining_search_sad() directly

The function pointer in compressor instance does not change, so this
commit changes to call the function directly.

Change-Id: I9c9c460e3475711c384b74c9842f0b4f3d037cc5

9 years agoAdd empty pointer check to pred buffering in rtc coding mode
Jingning Han [Mon, 17 Nov 2014 19:21:42 +0000 (11:21 -0800)]
Add empty pointer check to pred buffering in rtc coding mode

This commit adds a check condition to the prediction buffering
operation used in the rtc coding mode. This resolves a unit test
warning in example/vpx_tsvc_encoder_vp9_mode_7.

Change-Id: I9fd50d5956948b73b53bd8fc5a16ee66aff61995

9 years agoMerge "Code cleanup: remove unused members in RD_OPT"
Yunqing Wang [Mon, 17 Nov 2014 17:10:28 +0000 (09:10 -0800)]
Merge "Code cleanup: remove unused members in RD_OPT"

9 years agoMerge "vp9_ethread: combine encoder counts in separate struct"
Yunqing Wang [Mon, 17 Nov 2014 16:57:38 +0000 (08:57 -0800)]
Merge "vp9_ethread: combine encoder counts in separate struct"

9 years agoMerge "Added sse2 acceleration for highbitdepth variance"
Debargha Mukherjee [Sat, 15 Nov 2014 05:11:27 +0000 (21:11 -0800)]
Merge "Added sse2 acceleration for highbitdepth variance"

9 years agoMerge "Visual studio build fix using explicit cast"
James Zern [Sat, 15 Nov 2014 04:26:28 +0000 (20:26 -0800)]
Merge "Visual studio build fix using explicit cast"

9 years agoCode cleanup: remove unused members in RD_OPT
Yunqing Wang [Sat, 15 Nov 2014 00:33:25 +0000 (16:33 -0800)]
Code cleanup: remove unused members in RD_OPT

These 2 members in RD_OPT were moved to TileDataEnc struct
already, and therefore were removed here.

Change-Id: I22fee3b67f96e473a58e194a7edc76dbd48bfa04

9 years agovp9_ethread: combine encoder counts in separate struct
Yunqing Wang [Sat, 15 Nov 2014 00:04:15 +0000 (16:04 -0800)]
vp9_ethread: combine encoder counts in separate struct

Several frame counters in encoder are updated at SB level. Combine
those counters and put them in a separate struct, which allows us
to allocate one copy for each thread.

Change-Id: I00366296a13c0ada4d8fa12f5e07728388b6cab7

9 years agoAdded sse2 acceleration for highbitdepth variance
Peter de Rivaz [Thu, 16 Oct 2014 13:00:54 +0000 (14:00 +0100)]
Added sse2 acceleration for highbitdepth variance

Change-Id: I446bdf3a405e4e9d2aa633d6281d66ea0cdfd79f
(cherry picked from commit d7422b2b1eb9f0011a8c379c2be680d6892b16bc)
(cherry picked from commit 6d741e4d76a7d9ece69ca117d1d9e2f9ee48ef8c)

9 years agoVisual studio build fix using explicit cast
Deb Mukherjee [Fri, 14 Nov 2014 23:12:01 +0000 (15:12 -0800)]
Visual studio build fix using explicit cast

Change-Id: If74510370723e497f4f33d988b8b398124edf69b

9 years agoMerge "vp9_ethread: include a pointer to mb in VP9_COMP"
Yunqing Wang [Fri, 14 Nov 2014 23:11:47 +0000 (15:11 -0800)]
Merge "vp9_ethread: include a pointer to mb in VP9_COMP"

9 years agovp9_ethread: include a pointer to mb in VP9_COMP
Yunqing Wang [Fri, 14 Nov 2014 20:31:06 +0000 (12:31 -0800)]
vp9_ethread: include a pointer to mb in VP9_COMP

Modified VP9_COMP struct to include MACROBLOCK *mb. This change
makes it feasible in multi-thread case to allocate a mb for each
thread.

Change-Id: I624d6d1aa9c132362200753e5d90b581b1738d6e

9 years agoMerge "Add more rate control stats to vpx_temporal_svc_encoder."
Marco [Fri, 14 Nov 2014 19:36:05 +0000 (11:36 -0800)]
Merge "Add more rate control stats to vpx_temporal_svc_encoder."

9 years agoAdd more rate control stats to vpx_temporal_svc_encoder.
Marco [Thu, 13 Nov 2014 23:03:45 +0000 (15:03 -0800)]
Add more rate control stats to vpx_temporal_svc_encoder.

Average and variance of actual encoding bitrate over fixed short-time window.

Change-Id: Icc3d6d93792c81e1fb9fd3b56008bf47a503b204

9 years agoMerge "vp9_ethread: modify the cyclic refresh struct"
Yunqing Wang [Fri, 14 Nov 2014 02:35:01 +0000 (18:35 -0800)]
Merge "vp9_ethread: modify the cyclic refresh struct"

9 years agoMerge "adapt the adjustment limit for rate correction factor in RTC mode"
Yaowu Xu [Thu, 13 Nov 2014 23:50:30 +0000 (15:50 -0800)]
Merge "adapt the adjustment limit for rate correction factor in RTC mode"

9 years agovp9_ethread: modify the cyclic refresh struct
Yunqing Wang [Thu, 13 Nov 2014 21:38:23 +0000 (13:38 -0800)]
vp9_ethread: modify the cyclic refresh struct

Two members in struct CYCLIC_REFRESH
  int64_t projected_rate_sb;
  int64_t projected_dist_sb;
are updated at the superblock level, which makes them shared data
in the multi-thread situation, and requires extra work to handle
them. However, those values are updated and used immediately, and
therefore can be removed. This patch cleaned up the code and
removed the two members.

Change-Id: I2c6ee4552bf49fb63ce590cdb47f9723974fffb1

9 years agoMerge "Prepare for dynamic frame resizing in the recode loop"
Adrian Grange [Thu, 13 Nov 2014 23:01:49 +0000 (15:01 -0800)]
Merge "Prepare for dynamic frame resizing in the recode loop"

9 years agoMerge "Fix 32 bit build emms problem."
Paul Wilkins [Thu, 13 Nov 2014 23:00:41 +0000 (15:00 -0800)]
Merge "Fix 32 bit build emms problem."

9 years agoMerge "Revert "Fix SSSE3 partial_idct_test detection""
Johann [Thu, 13 Nov 2014 22:49:22 +0000 (14:49 -0800)]
Merge "Revert "Fix SSSE3 partial_idct_test detection""

9 years agoMerge "Use reconstructed pixels for intra prediction"
Jingning Han [Thu, 13 Nov 2014 21:59:02 +0000 (13:59 -0800)]
Merge "Use reconstructed pixels for intra prediction"

9 years agoMerge "Refactor nonrd_use_partition coding process"
Jingning Han [Thu, 13 Nov 2014 21:58:21 +0000 (13:58 -0800)]
Merge "Refactor nonrd_use_partition coding process"

9 years agoPrepare for dynamic frame resizing in the recode loop
Adrian Grange [Mon, 10 Nov 2014 17:51:38 +0000 (09:51 -0800)]
Prepare for dynamic frame resizing in the recode loop

Prepare for the introduction of frame-size change
logic into the recode loop.

Separated the speed dependent features into
separate static and dynamic parts, the latter being
those features that are dependent on the frame size.

Change-Id: Ia693e28c5cf069a1a7bf12e49ecf83e440e1d313

9 years agoFix 32 bit build emms problem.
Paul Wilkins [Wed, 12 Nov 2014 17:36:49 +0000 (09:36 -0800)]
Fix 32 bit build emms problem.

Add extra vp9_clear_system_state() calls to fix
double / mmx issue introduced into first pass
code for 32 bit builds.

Change-Id: I84cd2986b80d83650a091ab25c43755efeb82e03

9 years agoRevert "Fix SSSE3 partial_idct_test detection"
James Zern [Thu, 13 Nov 2014 18:59:54 +0000 (10:59 -0800)]
Revert "Fix SSSE3 partial_idct_test detection"

This reverts commit 7d07f512cd87446eef541e9af4af19b1e8c6342a.

this breaks visual studio builds:
'#' : invalid character : possibly the result of a macro expansion

Change-Id: I77170d549afb71e75a878fa0f6acd204fe8d9e67

9 years agoadapt the adjustment limit for rate correction factor in RTC mode
Yaowu Xu [Thu, 13 Nov 2014 19:20:04 +0000 (11:20 -0800)]
adapt the adjustment limit for rate correction factor in RTC mode

Rate correction factor is used to correct the estimated rate for any
given quantizer, and feeds into rate control for quantizer selection.
We make use of the actual bits used to calculate this rate correction
factor with an adjustment limit to prevent over-adjustment.

This commit adapts the adjustment limit to the difference between the
estimated bits and the actual bits, allows the adjustment limit to vary
between 0.125 (when estimate is close to actual) and 0.625 (when there
is >10X factor off between estimated and actual bits). By doing this,
the commit appears to have largely corrected two observed issues:
1. Adjustment is too slow when the actual bits used is way off from
estimate due to the small adjustment limit.
2. Extreme oscillating quantizer choices due to the feedback loop.

Change-Id: I4ee148d2c9d26d173b6c48011313ddb07ce2d7d6

9 years agoMerge "Vidyo: Turn off keyframes in higher spatial layers"
Deb Mukherjee [Thu, 13 Nov 2014 11:27:11 +0000 (03:27 -0800)]
Merge "Vidyo: Turn off keyframes in higher spatial layers"

9 years agoMerge "Added highbitdepth sse2 SAD acceleration and tests"
Debargha Mukherjee [Thu, 13 Nov 2014 05:20:34 +0000 (21:20 -0800)]
Merge "Added highbitdepth sse2 SAD acceleration and tests"

9 years agoRemove vp9_temporal_denoising from experimental list.
Marco [Thu, 13 Nov 2014 01:34:54 +0000 (17:34 -0800)]
Remove vp9_temporal_denoising from experimental list.

Change-Id: I7a941c0efbb5912aa97348da6fd1aba28df4482a

9 years agoAdded highbitdepth sse2 SAD acceleration and tests
Peter de Rivaz [Thu, 16 Oct 2014 12:41:55 +0000 (13:41 +0100)]
Added highbitdepth sse2 SAD acceleration and tests

Change-Id: I1a74a1b032b198793ef9cc526327987f7799125f
(cherry picked from commit b1a6f6b9cb47eafe0ce86eaf0318612806091fe5)

9 years agoMerge "Fix SSSE3 partial_idct_test detection"
Johann [Wed, 12 Nov 2014 20:20:36 +0000 (12:20 -0800)]
Merge "Fix SSSE3 partial_idct_test detection"

9 years agoMerge "Use normal rate_correction_factor for gf in CBR mode"
Yaowu Xu [Wed, 12 Nov 2014 16:00:26 +0000 (08:00 -0800)]
Merge "Use normal rate_correction_factor for gf in CBR mode"

9 years agoVidyo: Turn off keyframes in higher spatial layers
Deb Mukherjee [Wed, 12 Nov 2014 00:09:07 +0000 (16:09 -0800)]
Vidyo: Turn off keyframes in higher spatial layers

Change-Id: Icdd5e71cd6a2b59bc4b3b972af9e4d4a36821792

9 years agoMerge "Vidyo: Support for one-pass rc-enabled SVC encoder"
Deb Mukherjee [Wed, 12 Nov 2014 00:03:11 +0000 (16:03 -0800)]
Merge "Vidyo: Support for one-pass rc-enabled SVC encoder"

9 years agoUse reconstructed pixels for intra prediction
Jingning Han [Sat, 8 Nov 2014 01:50:55 +0000 (17:50 -0800)]
Use reconstructed pixels for intra prediction

This commit makes the speed -6 and above use the reconstructed
boundary pixels for precise intra prediction. This allows more
intra prediction modes to be tested in the non-RD coding process.

Enabling horizontal and vertical intra prediction modes can
improve the speed -6 compression performance for rtc set
by 0.331%.

Change-Id: I3a99f9d12c6af54de2bdbf28c76eab8e0905f744

9 years agoMerge "AQ1 - remove first pass weights."
Paul Wilkins [Tue, 11 Nov 2014 17:17:33 +0000 (09:17 -0800)]
Merge "AQ1 - remove first pass weights."

9 years agoUse normal rate_correction_factor for gf in CBR mode
Yaowu Xu [Mon, 10 Nov 2014 19:46:58 +0000 (11:46 -0800)]
Use normal rate_correction_factor for gf in CBR mode

I0c5f010 changed to allow update golden reference buffer in CBR mode,
this commit changes the use of rate_correction_factor for those frames
to be aligned with the new usage. This commit attempts to solve two
issues:

a. Initialization of rate correction factor for Golden Frame
Prior to this patch, even the regular inter frame has been update
the rate correction factor based on content and encoding results,
the first golden frame would still use the ininitialized value
that can be way off.

b. Allowing rate correction factor update to be slightly faster
Prior to this patch, when the rate correction factor is off, the
update to the factor is too slow, the factor could not get close
to a semi-correct value even after many frames.

The commit helps all clips in psnr/ssim metric, but especially to
a few clip in RTC set that rate correction was way off. For example
thaloundeskmtgvga gained about .5dB for both overall/average psnr.

Change-Id: I0be5c41691be57891d824505348b64be87fa3545

9 years agoVidyo: Support for one-pass rc-enabled SVC encoder
Deb Mukherjee [Fri, 7 Nov 2014 19:01:53 +0000 (11:01 -0800)]
Vidyo: Support for one-pass rc-enabled SVC encoder

Adds support for one-pass rc-enabled SVC encoder with callbacks for
getting per-layer packets.
- the callback function registration is implemented as an encoder
control function.
- if the callback function is not registered, the old way of
aggregating packets with superframe will take effect.
- one more control function “VP9E_GET_SVC_LAYER_ID” has been
implemented to get the temporal/spatial id from the encoder
within the callback. This can be used to get the ids to put on RTP
packet.

Change-Id: I1a90e00135dde65da128b758e6c00b57299a111a

9 years agoMerge "Iadst transforms to use internal low precision"
Deb Mukherjee [Mon, 10 Nov 2014 23:39:46 +0000 (15:39 -0800)]
Merge "Iadst transforms to use internal low precision"

9 years agoMerge "Remove asm offset dependencies"
Johann [Mon, 10 Nov 2014 18:22:09 +0000 (10:22 -0800)]
Merge "Remove asm offset dependencies"

9 years agoMerge "Fix LAST SKIP when considering GOLDEN"
Alex Converse [Sat, 8 Nov 2014 00:21:37 +0000 (16:21 -0800)]
Merge "Fix LAST SKIP when considering GOLDEN"

9 years agoIadst transforms to use internal low precision
Deb Mukherjee [Thu, 6 Nov 2014 20:50:33 +0000 (12:50 -0800)]
Iadst transforms to use internal low precision

Change-Id: I266777d40c300bc53b45b205144520b85b0d6e58
(cherry picked from commit a1b726117f5470f227bc90cd030b7d25045dc510)

9 years agoTest name changes to use SSE/SSE2 exactly
Deb Mukherjee [Fri, 7 Nov 2014 18:19:46 +0000 (10:19 -0800)]
Test name changes to use SSE/SSE2 exactly

Change-Id: I3b5a478d198868c2796366f0ac59d0e2036308b8

9 years agoFix LAST SKIP when considering GOLDEN
Alex Converse [Fri, 7 Nov 2014 21:44:17 +0000 (13:44 -0800)]
Fix LAST SKIP when considering GOLDEN

Change-Id: I39d9f13fa34984ee9dad0c4f303ef672635f420e

9 years agoMerge "Add intra complexity and brightness weight to first pass."
Paul Wilkins [Fri, 7 Nov 2014 17:22:12 +0000 (09:22 -0800)]
Merge "Add intra complexity and brightness weight to first pass."

9 years agoMerge "Change the use of a reserved color space entry"
Yaowu Xu [Fri, 7 Nov 2014 14:24:59 +0000 (06:24 -0800)]
Merge "Change the use of a reserved color space entry"

9 years agoAQ1 - remove first pass weights.
Paul Wilkins [Fri, 7 Nov 2014 14:11:29 +0000 (14:11 +0000)]
AQ1 - remove first pass weights.

Removed redundant weighting function tied for AQ1 from first
pass code.

Improvment in baseline AQ1 results:-
Derf  opsnr +0.142% SSIm +0.258%
YT  opsnr +0.173% SSIm +0.3%

Change-Id: I16ef91caf2d7f302cd5940cc5e2626d48ebcb212

9 years agoChange the use of a reserved color space entry
Yaowu Xu [Fri, 7 Nov 2014 03:09:30 +0000 (19:09 -0800)]
Change the use of a reserved color space entry

This commit rename a reserved color space entry to BT_2020, it intends
to provide support for VP9 bitstream to pass along the color space
type defined in BT.2020(Rec.2020)

please note this entry does not have any effect on encoding/decoding
behavior, but allow applications to the pass the information along
from encoding end to decoding end.

Change-Id: I4678520e89141ea5e8900f7bd1c0e95b710b7091

9 years agoRefactor nonrd_use_partition coding process
Jingning Han [Thu, 6 Nov 2014 19:53:18 +0000 (11:53 -0800)]
Refactor nonrd_use_partition coding process

This commit integrates the non-RD mode decision process and the
encoding process into a single recursion scheme.

Change-Id: I6a7e72a0b84d567554801ebbe01ec75d54c1f77d

9 years agoRemove asm offset dependencies
Johann [Thu, 31 Jul 2014 21:19:31 +0000 (14:19 -0700)]
Remove asm offset dependencies

The obj_int_extract code is no longer worth maintaining. It creates
significant issues when adapting for different build systems and no
longer offers as significant of a performance benefit due to
improvements in intrinsics.

Source files will remain until the various third-party builds are updated.

The neon fast quantizer has been moved to intrinsics. The armv6 version
has been removed because so few remaining targets require it.

Compilers and processors have improved significantly since the
pack_tokens code was written. The assembly is no longer faster than the
C code.

pack_tokens were the only optimizations for the armv5te targets so the targets
will be removed after the test infrastructure has been updated.

BUG=710

Change-Id: Ic785b167cd9f95eeff31c7c76b7b736c07fb30eb

9 years agoMerge "Modify the frame context memory deallocation"
Yunqing Wang [Thu, 6 Nov 2014 21:08:57 +0000 (13:08 -0800)]
Merge "Modify the frame context memory deallocation"

9 years agoMerge "Remove unused is_background function"
Jingning Han [Thu, 6 Nov 2014 20:03:15 +0000 (12:03 -0800)]
Merge "Remove unused is_background function"

9 years agoMerge "Rework cut-off decisions in cyclic refresh aq mode"
Jingning Han [Thu, 6 Nov 2014 20:03:07 +0000 (12:03 -0800)]
Merge "Rework cut-off decisions in cyclic refresh aq mode"

9 years agoModify the frame context memory deallocation
Yunqing Wang [Thu, 30 Oct 2014 01:38:18 +0000 (18:38 -0700)]
Modify the frame context memory deallocation

This patch was to fix the vpxdec fuzzing3 test failure. When an
error occurs, setjmp() is invoked, which calls the decoder
removing routine. In multiple thread situation, other threads
could try to access the frame context memory that is already
deallocated, thus causing a segfault.

An invalid unit test was added for this issue.

Change-Id: Ida7442154f3d89759483f0f4fe0324041fffb952

9 years agoAdd intra complexity and brightness weight to first pass.
Paul Wilkins [Tue, 4 Nov 2014 13:13:39 +0000 (13:13 +0000)]
Add intra complexity and brightness weight to first pass.

The aim of this patch is to apply a positive weighting to
frames that have a significant number of blocks that are
of low spatial complexity and are dark. The rationale behind
this is that artifacts tend to be more visible in such frames.

In this patch the weight is only applied in regard to the distribution
of bits between frames. Hence if all the frames share similar
characteristics (as is the case for most of our short test clips) there
will be little or no net effect.

However, the effect can be seen on some longer form test content.

For example Tears of steel baseline test:
2323.09 Kbit/s opsnr 39.915 ssim 74.729
With this patch:-
2213.34 Kbit/s opsnr 39.963 ssim 74.808
(Sligtly better metrics and about 5% smaller)

The weighting may well need some further tuning along side changes
to the aq modes.

Change-Id: Ieced379bca03938166ab87b2b97f55d94948904c

9 years agoRemove unused is_background function
Jingning Han [Tue, 4 Nov 2014 22:42:07 +0000 (14:42 -0800)]
Remove unused is_background function

Change-Id: Ia540eac5f066ae95280c2f898370eddf0110c279

9 years agoRework cut-off decisions in cyclic refresh aq mode
Jingning Han [Tue, 4 Nov 2014 22:32:04 +0000 (14:32 -0800)]
Rework cut-off decisions in cyclic refresh aq mode

This commit removes the cyclic aq mode dependency on
in_static_area and reworks the corresponding cut-off thresholds.
It improves the compression performance of speed -5 by 1.47% in
PSNR and 2.07% in SSIM, and the compression performance of speed
-6 by 3.10% in PSNR and 5.25% in SSIM. Speed wise, about 1% faster
in both settings at high bit-rates.

Change-Id: I1ffc775afdc047964448d9dff5751491ba4ff4a9

9 years agoMerge "Totally remove prev_mi in VP9 decoder."
hkuang [Thu, 6 Nov 2014 01:48:47 +0000 (17:48 -0800)]
Merge "Totally remove prev_mi in VP9 decoder."

9 years agoTotally remove prev_mi in VP9 decoder.
hkuang [Mon, 3 Nov 2014 19:23:22 +0000 (11:23 -0800)]
Totally remove prev_mi in VP9 decoder.

This will save the memory and improve the decode speed due to
removing unnecessary memset of big prev_mi array for
all the key frames.

Decoding a all key frames 1080p video shows speed improve around 2%.

Change-Id: I6284a445c1291056e3c15135c3c20d502f791c10

9 years agoMerge "Fix visual studio 2013 compiler warnings"
Yaowu Xu [Wed, 5 Nov 2014 23:34:13 +0000 (15:34 -0800)]
Merge "Fix visual studio 2013 compiler warnings"

9 years agoMerge "vp8 quantize is now in intrinsics, not asm"
Johann [Wed, 5 Nov 2014 22:05:26 +0000 (14:05 -0800)]
Merge "vp8 quantize is now in intrinsics, not asm"

9 years agoFix visual studio 2013 compiler warnings
Yaowu Xu [Wed, 5 Nov 2014 19:29:21 +0000 (11:29 -0800)]
Fix visual studio 2013 compiler warnings

For configured with --enable-vp9-highbitdepth

Change-Id: I2b181519d7192f8d7a241ad5760c3578255f24e6

9 years agoMerge "Simplify interface of write_selected_tx_size and read_tx_size"
Hui Su [Wed, 5 Nov 2014 21:33:09 +0000 (13:33 -0800)]
Merge "Simplify interface of write_selected_tx_size and read_tx_size"

9 years agoFix SSSE3 partial_idct_test detection
Johann [Wed, 5 Nov 2014 20:56:04 +0000 (12:56 -0800)]
Fix SSSE3 partial_idct_test detection

The test filter is not a prefix matcher. It requires test type to
contain no more than the optimization type. In this example, SSSE3_64
fails to match and the test is not skipped even when SSSE3 is not
available.

Change-Id: Ia74229a167c88da4e6da169012a7a77d438c3f75

9 years agovp8 quantize is now in intrinsics, not asm
Johann [Wed, 5 Nov 2014 18:58:26 +0000 (10:58 -0800)]
vp8 quantize is now in intrinsics, not asm

Change-Id: Ie106c5335c9ba5aac81e23150e7026fb6ea6196e

9 years agoMerge "Skip ref frame mode search conditioned on predicted mv residuals"
Jingning Han [Wed, 5 Nov 2014 20:04:10 +0000 (12:04 -0800)]
Merge "Skip ref frame mode search conditioned on predicted mv residuals"

9 years agoquantize_test: delete QuantizePair related tests
James Zern [Wed, 5 Nov 2014 12:11:34 +0000 (13:11 +0100)]
quantize_test: delete QuantizePair related tests

functions were removed in:
2134eb2 Remove pair quantization

fixes ARM build

Change-Id: I634de50c2752408381d70afb0f5088b61052853c

9 years agoMerge "Remove pair quantization"
Johann [Wed, 5 Nov 2014 00:29:19 +0000 (16:29 -0800)]
Merge "Remove pair quantization"

9 years agoMerge "vp8 quantization -> intrinsics"
Johann [Wed, 5 Nov 2014 00:28:46 +0000 (16:28 -0800)]
Merge "vp8 quantization -> intrinsics"

9 years agoSimplify interface of write_selected_tx_size and read_tx_size
Hui Su [Fri, 31 Oct 2014 00:56:36 +0000 (17:56 -0700)]
Simplify interface of write_selected_tx_size and read_tx_size

Change-Id: Ia2b2a895deefaaf7b34bf26df86add56dbab082c

9 years agoMerge "[spatial svc] Make spatial svc working for one pass rate control"
Minghai Shang [Tue, 4 Nov 2014 23:57:16 +0000 (15:57 -0800)]
Merge "[spatial svc] Make spatial svc working for one pass rate control"

9 years agoMerge "Fix the memory leak due to missing free frame_mvs."
hkuang [Tue, 4 Nov 2014 22:43:47 +0000 (14:43 -0800)]
Merge "Fix the memory leak due to missing free frame_mvs."

9 years agoMerge "Avoid divide-by-zero in vp8 initialization"
Johann [Tue, 4 Nov 2014 22:28:45 +0000 (14:28 -0800)]
Merge "Avoid divide-by-zero in vp8 initialization"

9 years agoFix the memory leak due to missing free frame_mvs.
hkuang [Mon, 3 Nov 2014 20:25:18 +0000 (12:25 -0800)]
Fix the memory leak due to missing free frame_mvs.

Change-Id: I2ceee7341d906259002c0ea31ea009ae32c04bfd

9 years agoAvoid divide-by-zero in vp8 initialization
Johann [Tue, 4 Nov 2014 18:46:24 +0000 (10:46 -0800)]
Avoid divide-by-zero in vp8 initialization

Check that the numerator is not zero. If it is, guess 30fps.

Fixes a clang IOC error in the quantize test. It's very unlikely for
this to occur in the wild because the setup in the quantize test is very
nonstandard.

Change-Id: Icdab7b81d4e168d3423e14db20787f960052e0c3

9 years ago[spatial svc] Make spatial svc working for one pass rate control
Minghai Shang [Tue, 4 Nov 2014 19:46:48 +0000 (11:46 -0800)]
[spatial svc] Make spatial svc working for one pass rate control

Change-Id: Ibd9114485c3d747f9d148f64f706bf873ea473ac

9 years agoAlign structures in quantize test
Johann [Tue, 4 Nov 2014 18:32:51 +0000 (10:32 -0800)]
Align structures in quantize test

MACROBLOCKD structures require alignment.

This fixes an issue caught by clang IOC.

Change-Id: Ibb5bcc122f531b4302a87e1144e4feaf46c1de64

9 years agoAdd some indirection to the quantize test
Johann [Tue, 4 Nov 2014 16:20:25 +0000 (08:20 -0800)]
Add some indirection to the quantize test

Visual Studio and XCode require the address of the functions be passed.

Change-Id: Id39cab8e50061fdc6ac6018371a3a158c713e14b

9 years agoMerge "Refactor sub-pixel motion search unit"
Jingning Han [Tue, 4 Nov 2014 17:11:15 +0000 (09:11 -0800)]
Merge "Refactor sub-pixel motion search unit"

9 years agoSkip ref frame mode search conditioned on predicted mv residuals
Jingning Han [Mon, 3 Nov 2014 19:36:34 +0000 (11:36 -0800)]
Skip ref frame mode search conditioned on predicted mv residuals

This commit makes the RTC coding mode to conditionally skip the
reference frame mode search, when the predicted motion vector of
the current reference frame gives more than two times sum of
absolute difference compared to that of other reference frames.

It reduces the runtim by 1% - 4% for speed -5 and -6. The average
compression performance is improved by about 0.1% in both settings.

It is of particular benefit to light change scenarios. The
compression performance of test clip mmmovingvga.y4m is improved by
6.39% and 15.69% at high bit rates for speed -5 and -6, respectively.

Speed -5
vidyo1 16555 b/f, 40.818 dB, 12422 ms ->
       16552 b/f, 40.804 dB, 12100 ms

nik    33211 b/f, 39.138 dB, 11341 ms ->
       33228 b/f, 39.139 dB, 11023 ms

mmmoving 33263 b/f, 40.935 dB, 13508 ms ->
         33256 b/f, 41.068 dB, 12861 ms

Speed -6
vidyo1 16541 b/f, 40.227 dB, 8437 ms ->
       16540 b/f, 40.220 dB, 8216 ms

nik    33272 b/f, 38.399 dB, 7610 ms ->
       33267 b/f, 38.414 dB, 7490 ms

mmmoving 33255 b/f, 40.555 dB, 7523 ms ->
         33257 b/f, 40.975 dB, 7493 ms

Change-Id: Id2aef76ef74a3cba5e9a82a83b792144948c6a91

9 years agoMerge "WORKAROUND FIX FOR GCC4.9.1"
Yunqing Wang [Tue, 4 Nov 2014 00:56:38 +0000 (16:56 -0800)]
Merge "WORKAROUND FIX FOR GCC4.9.1"

9 years agoMerge "vp8 quantize test"
Johann [Mon, 3 Nov 2014 23:45:21 +0000 (15:45 -0800)]
Merge "vp8 quantize test"

9 years agoMerge "Allow disable of refresh golden for more than 1 layer encoding."
Marco [Mon, 3 Nov 2014 22:38:05 +0000 (14:38 -0800)]
Merge "Allow disable of refresh golden for more than 1 layer encoding."