John Stark [Fri, 21 Nov 2014 20:11:26 +0000 (21:11 +0100)]
Changes to assembler for NASM on mac.
fixes non-Apple nasm part of issue #755
Change-Id: I11955d270c4ee55e3c00e99f568de01b95e7ea9a
Paul Wilkins [Fri, 21 Nov 2014 20:10:03 +0000 (12:10 -0800)]
Merge "Initial AQ1 restructuring."
James Zern [Fri, 21 Nov 2014 19:35:59 +0000 (11:35 -0800)]
Merge "vp9_thread_test: fix 'had_error' assignment"
Alex Converse [Fri, 21 Nov 2014 17:38:39 +0000 (09:38 -0800)]
Merge "Allow DC/H/V/TM on screen content."
Alex Converse [Fri, 21 Nov 2014 17:38:02 +0000 (09:38 -0800)]
Merge "Drop special inter mode selection for screen content."
Johann [Fri, 21 Nov 2014 16:55:22 +0000 (08:55 -0800)]
Merge "Remove armv5te target"
Johann [Thu, 20 Nov 2014 21:24:55 +0000 (13:24 -0800)]
Correctly initialize "ones" value in neon quantize
By using 0xff for a short it was not setting the high bits. When
comparing the output with vtst to find non-zero elements it was skipping
vaules which had no low bits set such as -512 / 0xFE00.
Using -8191 as the first element of coeff will generate this condition.
BUG=883
Change-Id: Ia1e10fb809d1e7866f28c56769fe703e6231a657
Alex Converse [Fri, 24 Oct 2014 22:57:48 +0000 (15:57 -0700)]
Allow DC/H/V/TM on screen content.
6.3% better compression
less than 1% compression time increase
Change-Id: Ie83c059436e54c09de9e7c87e06e0a6d40dc38fe
Alex Converse [Tue, 18 Nov 2014 21:31:49 +0000 (13:31 -0800)]
Drop special inter mode selection for screen content.
Better mode selection was implemented for all content.
Change-Id: I479778ed21d3968892f4dce396c83733583f4f23
Johann [Fri, 21 Nov 2014 01:08:11 +0000 (17:08 -0800)]
Remove armv5te target
All the assembly code has been removed, the tests no longer check for
the target, and android and chrome do not use the targets.
Change-Id: I193993f7b2b0bd6478453402f573ce3606e04e8d
Yunqing Wang [Fri, 21 Nov 2014 00:51:31 +0000 (16:51 -0800)]
Merge "vp9_ethread: move filter_cache out of RD_OPT struct"
Paul Wilkins [Wed, 12 Nov 2014 20:36:16 +0000 (12:36 -0800)]
Initial AQ1 restructuring.
This is the first of a series of patches to restructure and
improve AQ mode 1 (variance based AQ).
Change-Id: Idcf693131a3ea2459dcfd957a54a65b971fa4a2a
Paul Wilkins [Thu, 20 Nov 2014 23:45:41 +0000 (15:45 -0800)]
Merge "Fix bug in calculating number of mbs with scaling."
James Zern [Thu, 20 Nov 2014 22:18:37 +0000 (14:18 -0800)]
Merge "sad_test: fix vp8-only build"
James Zern [Thu, 20 Nov 2014 22:16:28 +0000 (14:16 -0800)]
vp9_thread_test: fix 'had_error' assignment
worker hooks return false on error, fix the assignment in Execute() used
in the TestSerialInterface test
Change-Id: I93c2e45f270330ae6d35a3a303411c4ee0f31337
Yunqing Wang [Thu, 20 Nov 2014 22:00:37 +0000 (14:00 -0800)]
Merge "vp9_ethread: move max/min partition size to mb struct"
Yunqing Wang [Thu, 20 Nov 2014 20:42:36 +0000 (12:42 -0800)]
vp9_ethread: move filter_cache out of RD_OPT struct
Similar to mask_filter, the filter_cache in RD_OPT struct can be
moved out, and declared as a local variable since it is only
used in pick_inter_mode functions.
Change-Id: I412b99cca82bade07ac912064ec03dd1de6b2c17
Yunqing Wang [Thu, 20 Nov 2014 21:02:55 +0000 (13:02 -0800)]
Merge "vp9_ethread: change mask_filter to a local variable"
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""
Paul Wilkins [Thu, 20 Nov 2014 20:22:53 +0000 (12:22 -0800)]
Fix bug in calculating number of mbs with scaling.
Correct calculation of number of mbs in two pass code when
frame resizing is enabled. Always use initial number of mbs if
scaling is enabled, as this is what was used in the first pass.
Change-Id: I49a4280ab5a8b1000efcc157a449a081cbb6d410
Yunqing Wang [Thu, 20 Nov 2014 17:41:49 +0000 (09:41 -0800)]
vp9_ethread: change mask_filter to a local variable
The mask_filter in RD_OPT struct is used to record rd result in
filter decision. It is only used in pick_inter_mode functions,
and is removed from the struct and declared as a local variable.
Change-Id: I3c95c8632ba7241591ce00ef2ef5677b5e297d7b
Yunqing Wang [Thu, 20 Nov 2014 17:24:50 +0000 (09:24 -0800)]
vp9_ethread: move max/min partition size to mb struct
The max_partition_size and max_partition_size are set at the
beginning while setting speed features, and then adjusted at
SB level. Moving them to mb struct ensures there is a local
copy for each thread.
Change-Id: I7dd08dc918d9f772fcd718bbd6533e0787720ad4
Jingning Han [Thu, 20 Nov 2014 17:06:39 +0000 (09:06 -0800)]
Merge "Enable ssse3 version of vp9_fdct8x8_quant"
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
Deb Mukherjee [Thu, 20 Nov 2014 07:22:18 +0000 (23:22 -0800)]
Merge "Changes SvcContext_t to SvcContext"
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
James Zern [Wed, 19 Nov 2014 03:27:06 +0000 (19:27 -0800)]
sad_test: fix vp8-only build
ROUND_POWER_OF_TWO() is defined in vp9 headers currently, avoid it in
non-high-bitdepth code
Change-Id: Ic28b8f95ef7964800475ee8b35be5f9cea9afab6
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
Jingning Han [Wed, 19 Nov 2014 19:17:44 +0000 (11:17 -0800)]
Merge "Combine fdct8x8 and quantization process"
Jingning Han [Wed, 19 Nov 2014 19:17:36 +0000 (11:17 -0800)]
Merge "Add sse2 version for vp9_quantize_fp"
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
Yaowu Xu [Wed, 19 Nov 2014 00:56:06 +0000 (16:56 -0800)]
Merge "Prevent severe rate control errors in CBR mode"
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
Marco [Tue, 18 Nov 2014 19:22:18 +0000 (11:22 -0800)]
Merge "Modify active_worst_quality setting for one pass CBR."
Yaowu Xu [Tue, 18 Nov 2014 17:14:02 +0000 (09:14 -0800)]
Merge "change to call vp9_refining_search_sad() directly"
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
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
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"
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
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
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
Yunqing Wang [Mon, 17 Nov 2014 17:10:28 +0000 (09:10 -0800)]
Merge "Code cleanup: remove unused members in RD_OPT"
Yunqing Wang [Mon, 17 Nov 2014 16:57:38 +0000 (08:57 -0800)]
Merge "vp9_ethread: combine encoder counts in separate struct"
Debargha Mukherjee [Sat, 15 Nov 2014 05:11:27 +0000 (21:11 -0800)]
Merge "Added sse2 acceleration for highbitdepth variance"
James Zern [Sat, 15 Nov 2014 04:26:28 +0000 (20:26 -0800)]
Merge "Visual studio build fix using explicit cast"
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
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
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)
Deb Mukherjee [Fri, 14 Nov 2014 23:12:01 +0000 (15:12 -0800)]
Visual studio build fix using explicit cast
Change-Id: If74510370723e497f4f33d988b8b398124edf69b
Yunqing Wang [Fri, 14 Nov 2014 23:11:47 +0000 (15:11 -0800)]
Merge "vp9_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
Marco [Fri, 14 Nov 2014 19:36:05 +0000 (11:36 -0800)]
Merge "Add 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
Yunqing Wang [Fri, 14 Nov 2014 02:35:01 +0000 (18:35 -0800)]
Merge "vp9_ethread: modify the cyclic refresh struct"
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"
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
Adrian Grange [Thu, 13 Nov 2014 23:01:49 +0000 (15:01 -0800)]
Merge "Prepare for dynamic frame resizing in the recode loop"
Paul Wilkins [Thu, 13 Nov 2014 23:00:41 +0000 (15:00 -0800)]
Merge "Fix 32 bit build emms problem."
Johann [Thu, 13 Nov 2014 22:49:22 +0000 (14:49 -0800)]
Merge "Revert "Fix SSSE3 partial_idct_test detection""
Jingning Han [Thu, 13 Nov 2014 21:59:02 +0000 (13:59 -0800)]
Merge "Use reconstructed pixels for intra prediction"
Jingning Han [Thu, 13 Nov 2014 21:58:21 +0000 (13:58 -0800)]
Merge "Refactor nonrd_use_partition coding process"
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
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
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
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
Deb Mukherjee [Thu, 13 Nov 2014 11:27:11 +0000 (03:27 -0800)]
Merge "Vidyo: Turn off keyframes in higher spatial layers"
Debargha Mukherjee [Thu, 13 Nov 2014 05:20:34 +0000 (21:20 -0800)]
Merge "Added highbitdepth sse2 SAD acceleration and tests"
Marco [Thu, 13 Nov 2014 01:34:54 +0000 (17:34 -0800)]
Remove vp9_temporal_denoising from experimental list.
Change-Id: I7a941c0efbb5912aa97348da6fd1aba28df4482a
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)
Johann [Wed, 12 Nov 2014 20:20:36 +0000 (12:20 -0800)]
Merge "Fix SSSE3 partial_idct_test detection"
Yaowu Xu [Wed, 12 Nov 2014 16:00:26 +0000 (08:00 -0800)]
Merge "Use normal rate_correction_factor for gf in CBR mode"
Deb Mukherjee [Wed, 12 Nov 2014 00:09:07 +0000 (16:09 -0800)]
Vidyo: Turn off keyframes in higher spatial layers
Change-Id: Icdd5e71cd6a2b59bc4b3b972af9e4d4a36821792
Deb Mukherjee [Wed, 12 Nov 2014 00:03:11 +0000 (16:03 -0800)]
Merge "Vidyo: Support for one-pass rc-enabled SVC encoder"
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
Paul Wilkins [Tue, 11 Nov 2014 17:17:33 +0000 (09:17 -0800)]
Merge "AQ1 - remove first pass weights."
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
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
Deb Mukherjee [Mon, 10 Nov 2014 23:39:46 +0000 (15:39 -0800)]
Merge "Iadst transforms to use internal low precision"
Johann [Mon, 10 Nov 2014 18:22:09 +0000 (10:22 -0800)]
Merge "Remove asm offset dependencies"
Alex Converse [Sat, 8 Nov 2014 00:21:37 +0000 (16:21 -0800)]
Merge "Fix LAST SKIP when considering GOLDEN"
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)
Deb Mukherjee [Fri, 7 Nov 2014 18:19:46 +0000 (10:19 -0800)]
Test name changes to use SSE/SSE2 exactly
Change-Id: I3b5a478d198868c2796366f0ac59d0e2036308b8
Alex Converse [Fri, 7 Nov 2014 21:44:17 +0000 (13:44 -0800)]
Fix LAST SKIP when considering GOLDEN
Change-Id: I39d9f13fa34984ee9dad0c4f303ef672635f420e
Paul Wilkins [Fri, 7 Nov 2014 17:22:12 +0000 (09:22 -0800)]
Merge "Add intra complexity and brightness weight to first pass."
Yaowu Xu [Fri, 7 Nov 2014 14:24:59 +0000 (06:24 -0800)]
Merge "Change the use of a reserved color space entry"
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
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
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
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
Yunqing Wang [Thu, 6 Nov 2014 21:08:57 +0000 (13:08 -0800)]
Merge "Modify the frame context memory deallocation"
Jingning Han [Thu, 6 Nov 2014 20:03:15 +0000 (12:03 -0800)]
Merge "Remove unused is_background function"
Jingning Han [Thu, 6 Nov 2014 20:03:07 +0000 (12:03 -0800)]
Merge "Rework cut-off decisions in cyclic refresh aq mode"
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
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
Jingning Han [Tue, 4 Nov 2014 22:42:07 +0000 (14:42 -0800)]
Remove unused is_background function
Change-Id: Ia540eac5f066ae95280c2f898370eddf0110c279
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
hkuang [Thu, 6 Nov 2014 01:48:47 +0000 (17:48 -0800)]
Merge "Totally 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
Yaowu Xu [Wed, 5 Nov 2014 23:34:13 +0000 (15:34 -0800)]
Merge "Fix visual studio 2013 compiler warnings"
Johann [Wed, 5 Nov 2014 22:05:26 +0000 (14:05 -0800)]
Merge "vp8 quantize is now in intrinsics, not asm"