Jingning Han [Tue, 9 Jul 2013 23:16:49 +0000 (16:16 -0700)]
Add unit test for 16x16 forward ADST/DCT
Unit tests on the functional accuracy of forward ADST/DCT.
Change-Id: I81afff866bdeacbd457b0af96993a035741657f6
Frank Galligan [Tue, 9 Jul 2013 22:38:44 +0000 (15:38 -0700)]
Merge "Add Neon horizontal and vertical vp9_mbloop_filter"
Scott LaVarnway [Tue, 9 Jul 2013 19:45:32 +0000 (12:45 -0700)]
Merge "Removed unnecessary xd->mode_info_context assignment"
Frank Galligan [Mon, 1 Jul 2013 19:52:38 +0000 (12:52 -0700)]
Add Neon horizontal and vertical vp9_mbloop_filter
- The vp9 mbfilter C code will branch on flat and mask. This CL
will perform both branches and combine the data. A later CL will
perform a check to see if all patch will take one branch.
- These functions are about 1.75 times faster than the C code on
Nexus 7.
PS #3
- Changed all functions to dub limit, blimit, and thresh from
vld {dx[]}, freeing up r4-r6.
- Changed code to use vbif to reduce one instruction and free
up a d register.
Change-Id: I028dae0e434dc9891c3677bdb182e201ffb04777
Dmitry Kovalev [Tue, 9 Jul 2013 19:26:11 +0000 (12:26 -0700)]
Merge "Adding update_tx_ct function, removing duplicated code."
Scott LaVarnway [Tue, 9 Jul 2013 17:41:34 +0000 (13:41 -0400)]
Removed unnecessary xd->mode_info_context assignment
mi is xd->mode_info_context
Change-Id: Ib101be922b695205ec57b5ce1828ba19bde5b41c
Ronald S. Bultje [Tue, 9 Jul 2013 16:54:48 +0000 (09:54 -0700)]
Merge "Unbreak lossless."
Ronald S. Bultje [Tue, 9 Jul 2013 16:54:43 +0000 (09:54 -0700)]
Merge "Make intra prediction pointers RTCD-based."
Ronald S. Bultje [Tue, 9 Jul 2013 16:46:37 +0000 (09:46 -0700)]
Unbreak lossless.
Change-Id: I8130ec9b5371c65e885f245a5ac73840c23cb4a1
Jim Bankoski [Tue, 9 Jul 2013 16:04:45 +0000 (09:04 -0700)]
cleanup read_mode_info if (1)
Change-Id: I851af23c787a2d3637d84244b9f75063cbf782f1
Jim Bankoski [Tue, 9 Jul 2013 15:52:30 +0000 (08:52 -0700)]
decoder speedup - get-segment-id only if segmentation enabled
Change-Id: I9355f8446660aeb7dfdbc5ee56635c791ac35e95
Yaowu Xu [Tue, 9 Jul 2013 08:34:25 +0000 (01:34 -0700)]
Merge "Fix loopfilter bug"
Dmitry Kovalev [Tue, 9 Jul 2013 03:09:19 +0000 (20:09 -0700)]
Merge "Using mi_cols instead of mb_cols."
Dmitry Kovalev [Tue, 9 Jul 2013 03:08:05 +0000 (20:08 -0700)]
Merge "Refactoring setup_pre_planes function."
Dmitry Kovalev [Tue, 9 Jul 2013 03:07:06 +0000 (20:07 -0700)]
Merge "Calling set_partition_seg_context() instead of code duplication."
Ronald S. Bultje [Tue, 9 Jul 2013 00:25:51 +0000 (17:25 -0700)]
Make intra prediction pointers RTCD-based.
This probably has a mildly negative impact on performance, but will
(in future commits - or possibly merged with this one) allow SIMD
implementations of individual intra prediction functions. We may
perhaps want to consider having separate functions per txfm-size
also (i.e. 4x4, 8x8, 16x16 and 32x32 intra prediction functions for
each intra prediction mode), but I haven't played much with that
yet.
Change-Id: Ie739985eee0a3fcbb7aed29ee6910fdb653ea269
John Koleszar [Mon, 8 Jul 2013 23:39:37 +0000 (16:39 -0700)]
Fix loopfilter bug
In the rare case were 4x4 interior filtering was called for but no
8x8 or larger filtering takes place, the previous code was skipping
the filtering. This patch fixes the issue by including the interior
mask in the overall mask for the filter application loops.
Change-Id: I4a0b65056c64f97478827c2ff41e0914fc7779d0
Ronald S. Bultje [Mon, 8 Jul 2013 21:38:40 +0000 (14:38 -0700)]
Don't call encode_sb() for the final of 4-split subpartitions.
The resulting reconstruction is never used, thus it just wastes CPU
cycles. Reduces encode time of first 50 frames of bus (speed 0) @
1500kbps from 2min2.0 to 2min1.2, i.e. a 0.65% overall speedup.
Change-Id: I74755ca3aadc21e2be220f486259060bd4088c45
Ronald S. Bultje [Wed, 3 Jul 2013 19:04:30 +0000 (12:04 -0700)]
Inline vp9_get_mv_joint().
Encode time for first 50 frames of bus (speed 0) @ 1500kbps goes from
2min10.9 to 2min10.5, i.e. 0.3% faster overall, basically because we
prevent the call overhead.
Change-Id: I1eab1a95dd3eae282f9b866f1f0b3dcadff073d5
Ronald S. Bultje [Wed, 3 Jul 2013 17:54:36 +0000 (10:54 -0700)]
Don't recalculate mv_ref costs for each block/partition.
Changes cost_mv_ref() into doing a LUT into pre-calculated cost
arrays instead. Encode time of first 50 frames of bus (speed 0)
@ 1500kbps goes from 2min11.6 to 2min10.9, i.e. 0.5% faster overall.
Change-Id: If186e92c34c201b29cbbc058785a15c9c09e433a
Ronald S. Bultje [Wed, 3 Jul 2013 17:09:15 +0000 (10:09 -0700)]
Remove unnecessary memset(best_index, 0) from trellis/optimize.
First 50 frames of bus @ 1500kbps (speed 0) goes from 2min12.6 to
2min11.6, i.e. 0.75% overall speedup.
Change-Id: I67054f8146e82a02b6457c51a1c8627a937e5e1e
Ronald S. Bultje [Mon, 8 Jul 2013 21:49:48 +0000 (14:49 -0700)]
Remove memcpy() in handle_inter_mode() filter selection.
Encode time of first 50 frames of bus (speed 0) @ 1500kbps goes from
2min4.9 to 2min3.1, i.e. a 1.4% speedup overall.
Change-Id: Ibe8b08d159797504c5d0c5122de1b6da3b6595e0
Ronald S. Bultje [Mon, 8 Jul 2013 21:49:33 +0000 (14:49 -0700)]
Make frame-wide filter-type decision fully RD-based.
Overall, on all test sets, this gains about +0.2% on all metrics.
City is a clip where this really hurts (-1.0% on all metrics), I'm
not quite sure why yet. Maybe interesting to look into in the future.
Change-Id: I6f0eecb20e72f0194633270d30bf00d76d9eae78
Dmitry Kovalev [Mon, 8 Jul 2013 21:54:04 +0000 (14:54 -0700)]
Using mi_cols instead of mb_cols.
Eliminating usage of mb-units, switching to mi-units. Adding
ALIGN_POWER_OF_TWO macro.
Change-Id: I2491c969f713207c062011878b57e4e531818607
Deb Mukherjee [Wed, 3 Jul 2013 21:47:54 +0000 (14:47 -0700)]
Implements several heuristics to prune mode search
Skips mode searches for intra and compound inter modes depending
on the best mode so far and the reference frames. The various
heuristics to be used are selected by bits from a flag. The
previous direction based intra mode search pruning is also absorbed
in this framework.
Specifically the flags and their impact are:
1) FLAG_SKIP_INTRA_BESTINTER (skip intra mode search for oblique
directional modes and TM_PRED if the best so far is
an inter mode)
derfraw300: -0.15%, 10% speedup
2) FLAG_SKIP_INTRA_DIRMISMATCH (skip D27, D63, D117 and D153
mode search if the best so far is not one of the closest
hor/vert/diagonal directions.
derfraw300: -0.05%, about 9% speedup
3) FLAG_SKIP_COMP_BESTINTRA (skip compound prediction mode
search if the best so far is an intra mode)
derfraw300: -0.06%, about 7-8% speedup
4) FLAG_SKIP_COMP_REFMISMATCH (skip compound prediction search
if the best single ref inter mode does not have the same ref
as one of the two references being tested in the compound mode)
derfraw300: -0.56%, about 10% speedup
Change-Id: I1a736cd29b36325489e7af9f32698d6394b2c495
Jingning Han [Fri, 5 Jul 2013 18:18:18 +0000 (11:18 -0700)]
Merge "Refactor SSE2 8x8 functional units"
Paul Wilkins [Thu, 4 Jul 2013 10:27:00 +0000 (03:27 -0700)]
Merge "Fix to comp_inter_joint_search_thresh feature."
Dmitry Kovalev [Thu, 4 Jul 2013 01:24:13 +0000 (18:24 -0700)]
Adding update_tx_ct function, removing duplicated code.
Change-Id: I8882fe3cd247a5a8304ab8ab2ee9abdb92830133
Dmitry Kovalev [Thu, 4 Jul 2013 00:42:01 +0000 (17:42 -0700)]
Refactoring setup_pre_planes function.
Removing set_refs, adding set_ref function.
Change-Id: I5635c478b106ae4e57d317f1c83d929644307e63
Dmitry Kovalev [Wed, 3 Jul 2013 23:33:58 +0000 (16:33 -0700)]
Merge "Adding write_skip_coeff function."
Jingning Han [Wed, 3 Jul 2013 21:20:41 +0000 (14:20 -0700)]
Merge "Enable early termination in rd search"
Dmitry Kovalev [Wed, 3 Jul 2013 21:16:02 +0000 (14:16 -0700)]
Merge "Replacing 64 / MI_SIZE with MI_BLOCK_SIZE."
Dmitry Kovalev [Wed, 3 Jul 2013 20:23:47 +0000 (13:23 -0700)]
Adding write_skip_coeff function.
Change-Id: I221126f22ab9067348eb0efb8a73b15a8f49c3fd
Yaowu Xu [Wed, 3 Jul 2013 20:21:22 +0000 (13:21 -0700)]
Merge "Inline a few intra predictors"
Jingning Han [Tue, 2 Jul 2013 23:48:15 +0000 (16:48 -0700)]
Enable early termination in rd search
This commit allows encoder to detect the cumulative rate-distortion
cost per transformed block inside a partition. If the cumulative
rd cost is already above the best rd value, it terminates the rest
operations and continue to next prediction mode test.
It reduces the runtime of bus at target bit-rate 2000 from 308 second
to 266 second, i.e., about 13% speed-up at no performance penalty.
Change-Id: I5f15a3d8955d97031d5653006027866a00654e7a
Dmitry Kovalev [Wed, 3 Jul 2013 18:15:58 +0000 (11:15 -0700)]
Calling set_partition_seg_context() instead of code duplication.
Change-Id: I65be6acc54c99688fd1f0c946cec3511514b8555
Dmitry Kovalev [Wed, 3 Jul 2013 17:54:50 +0000 (10:54 -0700)]
Replacing 64 / MI_SIZE with MI_BLOCK_SIZE.
Change-Id: I32276552b3ea6dc1dce8e298be114cfe1019b31c
Dmitry Kovalev [Wed, 3 Jul 2013 17:33:55 +0000 (10:33 -0700)]
Merge "Adding write_selected_txfm_size function."
Yaowu Xu [Wed, 3 Jul 2013 17:20:41 +0000 (10:20 -0700)]
Inline a few intra predictors
Change-Id: Ib41f0643fdcc088500e7420708f4e72f1f64c710
Jingning Han [Wed, 3 Jul 2013 16:05:01 +0000 (09:05 -0700)]
Refactor SSE2 8x8 functional units
These serve as building blocks for SSE2 8x8 and 16x16 ADST/DCT
hybrid transform coding.
Change-Id: I4089a754c66e0c986f67d9b8ec4dfb9627ad430d
Ronald S. Bultje [Wed, 3 Jul 2013 16:05:48 +0000 (09:05 -0700)]
Merge "Use pmovmskb to skip quantize loops over empty coefficients."
Ronald S. Bultje [Wed, 3 Jul 2013 16:05:20 +0000 (09:05 -0700)]
Merge "Remove unused function vp9_build_inter4x4_predictors_mbuv()."
Paul Wilkins [Wed, 3 Jul 2013 11:53:36 +0000 (12:53 +0100)]
Fix to comp_inter_joint_search_thresh feature.
When this is 0 (BLOCK_SIZE_AB4X4) we want to do
the inter joint search for all sizes.
Change-Id: Id40cd6fe7790e7e1165352b9cef5e12fa8c0bc88
Paul Wilkins [Mon, 1 Jul 2013 15:27:12 +0000 (16:27 +0100)]
Added two new skip experiments.
sf->unused_mode_skip_lvl. Tests modes as normal for all
sizes at or below the given level. At larger sizes it skips
all modes that were not chosen at any smaller size.
Hence setting BLOCK_SIZE_SB64X64 is in effect off.
Setting BLOCK_SIZE_AB4X4 will only consider modes that
were chosen for one or more 4x4 blocks at larger sizes.
sf->reference_masking.
Do a test encode of the NONE partition at one size and create
a reference frame mask based on the best rd choice. In the
full search only allow this reference frame.
Currently it is testing 64x64 and repeats this in the full search.
This does not work well with Jim's Partition code just now and
is disabled by default.
Change-Id: I8f8c52d2ef4a0c08100150b0ea4155d1aaab93dd
Paul Wilkins [Wed, 3 Jul 2013 09:47:18 +0000 (02:47 -0700)]
Merge "Adjust Speed 0 settings."
Dmitry Kovalev [Wed, 3 Jul 2013 01:09:31 +0000 (18:09 -0700)]
Merge "Removing redundant struct from union b_mode_info."
Yaowu Xu [Wed, 3 Jul 2013 00:16:11 +0000 (17:16 -0700)]
Merge "Added a speed feature use_square_partition_only"
Dmitry Kovalev [Tue, 2 Jul 2013 23:51:57 +0000 (16:51 -0700)]
Removing redundant struct from union b_mode_info.
Change-Id: I08fc6e474ff2c12cfa065bae4989c724276e2c83
Dmitry Kovalev [Tue, 2 Jul 2013 23:41:22 +0000 (16:41 -0700)]
Adding write_selected_txfm_size function.
Change-Id: I143b430b7c24a964ccd0ebb75944cf317a072214
Yaowu Xu [Thu, 27 Jun 2013 19:07:07 +0000 (12:07 -0700)]
Added a speed feature use_square_partition_only
This commit adds a speed feature where only squared partition are
evaluated in partition picking. Enable this feature in cpu-used 2
reduces encoding time by ~30%.
loss of compression:
-0.9% on cif set
-1.23% on stdhd
Change-Id: Ia6fad11210f0b78365abb889f9245604513be5b9
Ronald S. Bultje [Mon, 1 Jul 2013 19:03:20 +0000 (12:03 -0700)]
Use pmovmskb to skip quantize loops over empty coefficients.
If none of the 16 coefficients that we quantize per loop iteration
are larger than the zbin, directly skip to the next round of coeffs,
rather than doing a full quantize loop that will eventually result
in 16 zeroes. This incurs a jump cost, but saves a lot of other work.
32x32 quant goes from 1349 -> 1184 cycles. The same approach yielded
no significantly positive results for smaller transforms, so is not
used there (8x8: 103 -> 101 cycles; 16x16: 302 -> 306 cycles).
Change-Id: I8fca17dc2543fc8eed1dbcd5100145e3c3a9b647
Ronald S. Bultje [Tue, 2 Jul 2013 23:34:10 +0000 (16:34 -0700)]
Remove unused function vp9_build_inter4x4_predictors_mbuv().
Change-Id: Ibfd2def2c088f4bc541a1de25990d73480b53d4b
Jim Bankoski [Tue, 2 Jul 2013 21:14:16 +0000 (14:14 -0700)]
new unit test for cpu-speed
Tests q0 ( lossless), very high bitrate and low bitrates at cpu speed
0, 1 and 2.
Change-Id: I0c5cdca00acd8d01e7b13f124b3b08d4b1ae9f6d
Deb Mukherjee [Tue, 2 Jul 2013 18:18:00 +0000 (11:18 -0700)]
Speed feature to binary search dir intramodes
This speed feature will skip searching the directional intra prediction
modes D63, D117, D27, D153 if the best intra mode so far is not one of
the diagonal, horizontal or vertical directions closest to the respective
directions being tested. In other words, this implements a sort of
binary search in the angular domain.
Speedup: about 9-10%
Results: -0.05% only on derfraw300.
Change-Id: I413584c41f2a3e8dabfbdeb40718c8fc4b1d63a2
Deb Mukherjee [Tue, 2 Jul 2013 21:02:53 +0000 (14:02 -0700)]
Merge "Clean-up in forward update to use mapping tables"
Deb Mukherjee [Fri, 21 Jun 2013 23:31:12 +0000 (16:31 -0700)]
Tx size selection enhancements
(1) Refines the modeling function and uses that to add some speed
features. Specifically, intead of using a flag use_largest_txfm as
a speed feature, an enum tx_size_search_method is used, of which
two of the types are USE_FULL_RD and USE_LARGESTALL. Two other
new types are added:
USE_LARGESTINTRA (use largest only for intra)
USE_LARGESTINTRA_MODELINTER (use largest for intra, and model for
inter)
(2) Another change is that the framework for deciding transform type
is simplified to use a heuristic count based method rather than
an rd based method using txfm_cache. In practice the new method
is found to work just as well - with derf only -0.01 down.
The new method is more compatible with the new framework where
certain rd costs are based on full rd and certain others are
based on modeled rd or are not computed. In this patch the existing
rd based method is still kept for use in the USE_FULL_RD mode.
In the other modes, the count based method is used.
However the recommendation is to remove it eventually since the
benefit is limited, and will remove a lot of complications in
the code
(3) Finally a bug is fixed with the existing use_largest_txfm speed feature
that causes mismatches when the lossless mode and 4x4 WH transform is
forced.
Results on derf:
USE_FULL_RD: +0.03% (due to change in the tables), 0% encode time reduction
USE_LARGESTINTRA: -0.21%, 15% encode time reduction (this one is a
pretty good compromise)
USE_LARGESTINTRA_MODELINTER: -0.98%, 22% encode time reduction
(currently the benefit of modeling is limited for txfm size selection,
but keeping this enum as a placeholder) .
USE_LARGESTALL: -1.05%, 27% encode-time reduction (same as existing
use_largest_txfm speed feature).
Change-Id: I4d60a5f9ce78fbc90cddf2f97ed91d8bc0d4f936
Deb Mukherjee [Tue, 2 Jul 2013 19:48:20 +0000 (12:48 -0700)]
Clean-up in forward update to use mapping tables
Uses mapping tables instead of complicated modulo/division
operations for prob mapping for forward updates.
No bit-stream or output change.
Change-Id: Ifd9ce8ac1437835c305c94f64c18273c7a68f546
Dmitry Kovalev [Tue, 2 Jul 2013 18:58:48 +0000 (11:58 -0700)]
Merge "Removing unused implicit segmentation code."
Ronald S. Bultje [Tue, 2 Jul 2013 18:48:15 +0000 (11:48 -0700)]
Merge "Make get_coef_context() branchless."
Dmitry Kovalev [Tue, 2 Jul 2013 18:31:35 +0000 (11:31 -0700)]
Merge "Removing vp9_mbpitch.c, moving vp9_setup_block_dptrs to vp9_block.h."
Dmitry Kovalev [Tue, 2 Jul 2013 18:31:23 +0000 (11:31 -0700)]
Merge "Additional vp9_decodemv.c cleanup."
Dmitry Kovalev [Tue, 2 Jul 2013 18:16:42 +0000 (11:16 -0700)]
Removing unused implicit segmentation code.
Change-Id: I8a2983fb14274a6ac53681fa4cd5d4209cbd2905
Yunqing Wang [Tue, 2 Jul 2013 17:54:22 +0000 (10:54 -0700)]
Merge "Add speed feature to disable splitmv"
Yunqing Wang [Sun, 30 Jun 2013 00:34:51 +0000 (17:34 -0700)]
Add speed feature to disable splitmv
Added a speed feature in speed 1 to disable splitmv for HD (>=720)
clips. Test result on stdhd set: 0.3% psnr loss and 0.07% ssim
loss. Encoding speedup is 36%.
(For reference: The test result on derf set showed 2% psnr loss
and 1.6% ssim loss. Encoding speedup is 34%. SPLITMV should be
enabled for small resolution videos.)
Change-Id: I54f72b94f506c6d404b47c42e71acaa5374d6ee6
Jingning Han [Mon, 1 Jul 2013 23:50:58 +0000 (16:50 -0700)]
Calculate rd cost per transformed block
Compute the rate-distortion cost per transformed block, and cumulate
the cost through all blocks inside a partition. This allows encoder
to detect if the cumulative rd cost is already above the best rd cost,
thereby enabling early termination in the rate-distortion optimization
search.
Change-Id: I0a856367a9a7b6dd0b466e7b767f54d5018d09ac
Ronald S. Bultje [Tue, 2 Jul 2013 16:38:08 +0000 (09:38 -0700)]
Merge "Update quantize SSSE3 SIMD to cover 32x32 transform case also."
Paul Wilkins [Tue, 2 Jul 2013 14:42:14 +0000 (15:42 +0100)]
Adjust Speed 0 settings.
Remove the use of sf->comp_inter_joint_search_thresh
from the baseline speed 0. Approx +0.4% on derf.
Change-Id: Icc14db98909830f40e5ac66130d40e78d2e55c71
Paul Wilkins [Tue, 2 Jul 2013 11:34:41 +0000 (12:34 +0100)]
Revert "New motion threshold factor - speed feature."
This reverts commit
13772781807ebff8b5c7d100e90d0eac6c61cbd4.
Also fixes a spelling mistake.
Change-Id: I5be8aa4d8d3c0323d4a6f41968a7b2c048949c3f
Yaowu Xu [Tue, 2 Jul 2013 02:13:18 +0000 (19:13 -0700)]
fix the mismatch again in cpu_used 2
Change-Id: Icc4f70f0b0f91c9e7d5d00eedd67841afe2f2679
Jim Bankoski [Tue, 2 Jul 2013 01:18:50 +0000 (18:18 -0700)]
use partitioning from last frame
This cl converts use partition from last frame to do the following:
if part is none,horz, vert -> try split
if part != none and one of the children is not split - try none
Change-Id: I5b6c659e35f3ac9f11c051b92ba98af6d7e8aa87
Signed-off-by: Jim Bankoski <jimbankoski@google.com>
Dmitry Kovalev [Tue, 2 Jul 2013 00:28:08 +0000 (17:28 -0700)]
Removing vp9_mbpitch.c, moving vp9_setup_block_dptrs to vp9_block.h.
Change-Id: Ia547a5dd7650b771fd00edd673ab9f920270731c
Ronald S. Bultje [Mon, 1 Jul 2013 17:40:00 +0000 (10:40 -0700)]
Make get_coef_context() branchless.
This should significantly speedup cost_coeffs(). Basically what the
patch does is to make the neighbour arrays padded by one item to
prevent an eob check in get_coef_context(), then it populates each
col/row scan and left/top edge coefficient with two times the same
neighbour - this prevents a single/double context branch in
get_coef_context(). Lastly, it populates neighbour arrays in pixel
order (rather than scan order), so we don't have to dereference the
scantable to get the correct neighbours.
Total encoding time of first 50 frames of bus (speed 0) at 1500kbps
goes from 2min10.1 to 2min5.3, i.e. a 2.6% overall speed increase.
Change-Id: I42bcd2210fd7bec03767ef0e2945a665b851df56
Dmitry Kovalev [Mon, 1 Jul 2013 23:14:13 +0000 (16:14 -0700)]
Additional vp9_decodemv.c cleanup.
Change-Id: I5b413bc0884af0bda38c05332d86490103905b3b
Yaowu Xu [Mon, 1 Jul 2013 22:58:57 +0000 (15:58 -0700)]
Merge "Quantize (64-bit only, for now) SSSE3 SIMD."
Dmitry Kovalev [Mon, 1 Jul 2013 21:58:48 +0000 (14:58 -0700)]
Merge "Removing vp9_modecont.{h, c}."
Dmitry Kovalev [Mon, 1 Jul 2013 21:58:36 +0000 (14:58 -0700)]
Merge "Moving encoder subexp encoding functions to subexp.{h, c}."
Dmitry Kovalev [Mon, 1 Jul 2013 21:58:20 +0000 (14:58 -0700)]
Merge "Adding vp9_rb_read_signed_literal function."
Dmitry Kovalev [Mon, 1 Jul 2013 21:58:06 +0000 (14:58 -0700)]
Merge "Inlining decode_atom, decode_sb_intra, and decode_sb."
Dmitry Kovalev [Mon, 1 Jul 2013 21:50:32 +0000 (14:50 -0700)]
Merge "Cleanup inside vp9_decodemv.c."
Ronald S. Bultje [Mon, 1 Jul 2013 18:36:33 +0000 (11:36 -0700)]
Update quantize SSSE3 SIMD to cover 32x32 transform case also.
Encode time of bus (speed 0) 50 frames @ 1500kbps goes from 2min14.4 to
2min10.1, i.e. a 2.3% overall speed increase.
Change-Id: I3699580e74ec26c7d24e03681bc47ba25ee1ee87
Ronald S. Bultje [Mon, 1 Jul 2013 18:36:07 +0000 (11:36 -0700)]
Quantize (64-bit only, for now) SSSE3 SIMD.
Total encoding time for first 50 frames of bus (speed 0) @ 1500kbps
goes 2min34.8 to 2min14.4, i.e. a 10.4% overall speedup. The code is
x86-64 only, it needs some minor modifications to be 32bit compatible,
because it uses 15 xmm registers, whereas 32bit only has 8.
Change-Id: I2df53770c2e850813ffa713e1a91b45b0082b904
Dmitry Kovalev [Mon, 1 Jul 2013 17:17:15 +0000 (10:17 -0700)]
Removing vp9_modecont.{h, c}.
Moving vp9_default_inter_mode_probs array to vp9_entropymode.c.
Change-Id: I88ebda86ccc07f2a43c6c01d4b37898214cfb6de
Paul Wilkins [Mon, 1 Jul 2013 16:39:02 +0000 (09:39 -0700)]
Merge "New motion threshold factor - speed feature."
Yaowu Xu [Mon, 1 Jul 2013 15:54:50 +0000 (08:54 -0700)]
fix a mismatch in cpuused 2
Change-Id: I921c9faba6386535aaf717a54301dd346a9b8540
Paul Wilkins [Thu, 27 Jun 2013 12:16:33 +0000 (13:16 +0100)]
New motion threshold factor - speed feature.
Added a speed feature that focuses only on thresholds
for new motion modes.
Moved sf->comp_inter_joint_search_thresh into speed
1. This has ~+0.4% impact on quality at speed 0 as
our quality reference baseline.
Slight adjustment to baseline thresholds.
Change-Id: I7ebf104f1fe29af77ed4837b2e84be065621bbe5
Dmitry Kovalev [Mon, 1 Jul 2013 09:09:36 +0000 (02:09 -0700)]
Adding vp9_rb_read_signed_literal function.
Change-Id: I30ea91561ffac7e5065ba41b2d3ab7dedb720593
Jingning Han [Sat, 29 Jun 2013 22:57:03 +0000 (15:57 -0700)]
Merge "Enable SSE2 4x4 ADST/DCT transform"
Christian Duvivier [Tue, 18 Jun 2013 22:23:25 +0000 (15:23 -0700)]
SSE2 version of vp9_short_fdct32x32_rd.
43,000 -> 5,750 cycles, about 7.5x faster.
Change-Id: Ibfd92821b9603f4ed9c256e0ececec14fa4565d0
Dmitry Kovalev [Sat, 29 Jun 2013 18:50:45 +0000 (11:50 -0700)]
Moving encoder subexp encoding functions to subexp.{h, c}.
Change-Id: I83ca53bf6def871f199a382a671f26ad7cbecbca
Ronald S. Bultje [Sat, 29 Jun 2013 14:42:41 +0000 (07:42 -0700)]
Merge "fixed a bug where sse is not populated"
Johann [Sat, 29 Jun 2013 02:50:38 +0000 (19:50 -0700)]
Merge "add Neon optimized add constant residual functions"
James Zern [Sat, 29 Jun 2013 02:48:05 +0000 (19:48 -0700)]
Merge "fix test compile error"
Ronald S. Bultje [Sat, 29 Jun 2013 02:37:11 +0000 (19:37 -0700)]
Merge "Inline vp9_get_coef_context() (and remove vp9_ prefix)."
Ronald S. Bultje [Sat, 29 Jun 2013 02:36:56 +0000 (19:36 -0700)]
Merge "Minor change to prevent one level of dereference in cost_coeffs()."
chm [Thu, 27 Jun 2013 12:47:56 +0000 (20:47 +0800)]
add Neon optimized add constant residual functions
- Add add_constant_residual_8x8 16x16 32x32 functions
- Tested under RealView debugger enviroment
Change-Id: I5c3a432f651b49bf375de6496353706a33e3e68e
Dmitry Kovalev [Sat, 29 Jun 2013 01:38:02 +0000 (18:38 -0700)]
Merge "Cosmetic reordering of FRAME_CONTEXT members."
Dmitry Kovalev [Sat, 29 Jun 2013 01:34:30 +0000 (18:34 -0700)]
Inlining decode_atom, decode_sb_intra, and decode_sb.
Change-Id: I41711bb994f542c5ba3d0cefd9b2e79db3c2c3a1
James Zern [Sat, 29 Jun 2013 01:07:37 +0000 (18:07 -0700)]
fix test compile error
since:
92479d9 Make update_partition_context faster
fixes:
vp9/common/vp9_blockd.h:408:22: error:
non-constant-expression cannot be narrowed from type 'int' to 'char' in
initializer list [-Wc++11-narrowing]
char pcvalue[2] = {~(0xe << boffset), ~(0xf <<boffset)};
^~~~~~~~~~~~~~~~~
Change-Id: Id5b00b9a72d00a2b314081a23879bd1fa3ce983b
Jingning Han [Fri, 28 Jun 2013 20:37:19 +0000 (13:37 -0700)]
Enable SSE2 4x4 ADST/DCT transform
This commit enables SSE2 4x4 foward hybrid transform. The runtime
goes from 249 cycles down to 74 cycles. Overall around 2% speed-up
at no compression performance change.
Change-Id: Iad4d526346e05c7be896466c05500711bb763660
Yaowu Xu [Sat, 29 Jun 2013 00:10:22 +0000 (17:10 -0700)]
fixed a bug where sse is not populated
Change-Id: I692d800af1f976c84a76f8bd66864c4b39540abc