Dmitry Kovalev
8726752cb6
Merge "Adding DEFAULT_PRED_PROB_{0, 1, 2} constants." into experimental
2013-04-18 14:39:14 -07:00
Dmitry Kovalev
3fe7b64722
Merge "Motion vector decoding code cleanup." into experimental
2013-04-18 14:38:38 -07:00
Dmitry Kovalev
bef4e474e7
Merge "Changing argument type of vp9_get_mv_joint from MV to MV*." into experimental
2013-04-18 14:27:44 -07:00
John Koleszar
66c0d1100b
Merge "convolve: support larger blocks, fix asm saturation bug" into experimental
2013-04-18 14:27:16 -07:00
Dmitry Kovalev
a8d903e539
Merge "Replacing VP9_COMBINEENTROPYCONTEXTS macro with function." into experimental
2013-04-18 14:26:34 -07:00
Dmitry Kovalev
8b20aa2337
Merge "Renaming y1dc_delta_q, uvdc_delta_q, uvac_delta_q fields from VP9Common." into experimental
2013-04-18 14:26:06 -07:00
John Koleszar
a9ebbcc338
convolve: support larger blocks, fix asm saturation bug
...
Updates the common convoloution code to support blocks larger than
16x16, and rectangular blocks. This uncovered a bug in the SSSE3
filtering routines due to the order of application of saturation.
This commit fixes that bug, adjusts the unit test to bias its
random values towards the extremes, and adds a test to ensure that
all filters conform to the expected pairwise addition structure.
Change-Id: I81f69668b1de0de5a8ed43f0643845641525c8f0
2013-04-18 13:57:59 -07:00
Dmitry Kovalev
eae38910ce
Motion vector decoding code cleanup.
...
Change-Id: I9790baedbd4acb7113575efc6f228b2656c42ff7
2013-04-18 11:05:34 -07:00
John Koleszar
38f6232118
Merge "Use BLOCK_SIZE_TYPE in foreach_ walker" into experimental
2013-04-17 21:02:58 -07:00
Ronald S. Bultje
d49df319ab
Merge "Fix edge bug in recent merge of 64x64 and 32x32 inter predictors." into experimental
2013-04-17 16:30:42 -07:00
Ronald S. Bultje
d63826ac12
Fix edge bug in recent merge of 64x64 and 32x32 inter predictors.
...
Change-Id: I83aa188d414922db19cccb210c4001c02d5a404c
2013-04-17 16:12:02 -07:00
John Koleszar
ff3f93639c
Use BLOCK_SIZE_TYPE in foreach_ walker
...
Change-Id: I655305c9e22bdd9abc893d3c40d4bc6616aa1d35
2013-04-17 15:08:37 -07:00
Yaowu Xu
acfc5981c3
Merge "clean out experiments" into experimental
2013-04-17 14:53:00 -07:00
Yaowu Xu
c8606a241f
Merge "make lf_deltas dependent on filter_lvl" into experimental
2013-04-17 14:51:55 -07:00
Ronald S. Bultje
1cf31428ff
Merge "Remove unused file vp9_context.c." into experimental
2013-04-17 13:49:48 -07:00
Ronald S. Bultje
0a20625bd8
Remove unused file vp9_context.c.
...
Change-Id: Id268ccaf1aefee6a3ed3e31486d4370f1c25e8cb
2013-04-17 13:40:31 -07:00
Dmitry Kovalev
ecff8d71ab
Adding DEFAULT_PRED_PROB_{0, 1, 2} constants.
...
Also using ALLOWED_REFS_PER_FRAME instead of 3.
Change-Id: I810dd8521d8138edb9dbd78edede49b62f706554
2013-04-17 11:45:35 -07:00
Ronald S. Bultje
88192546cf
Merge "Remove BLOCK_SIZE_LG2." into experimental
2013-04-17 11:22:44 -07:00
Ronald S. Bultje
0bb49c4e30
Merge "Add SSE2 versions for rectangular sad and sad4d functions." into experimental
2013-04-17 11:22:32 -07:00
Dmitry Kovalev
0db175ffed
Changing argument type of vp9_get_mv_joint from MV to MV*.
...
Change-Id: I28c3026946fc1bde7074e6e0198da93bb0d75dfe
2013-04-17 11:21:28 -07:00
Yaowu Xu
642ac924ab
Merge "replace hev_thr_lut[][] with simpler logic" into experimental
2013-04-17 11:08:36 -07:00
Yaowu Xu
421ad3f1b1
clean out experiments
...
that are related to using reconstructed pixel for selecting reference
motion vectors.
Change-Id: I048dfae39ca7385e344b57d46347ecc6e753e1bb
2013-04-17 11:00:46 -07:00
Ronald S. Bultje
213fe85da3
Remove BLOCK_SIZE_LG2.
...
It is unused.
Change-Id: Ied3269ffacf9b6303bc9d85f996384c3575ef812
2013-04-17 11:00:30 -07:00
Yaowu Xu
888d0c82da
make lf_deltas dependent on filter_lvl
...
Change-Id: Idb0d11e3ae9afabe667a9f327bf4d3aa84f63649
2013-04-17 10:59:48 -07:00
Yaowu Xu
0d310de97b
replace hev_thr_lut[][] with simpler logic
...
Using filter_level/16 instead.
Change-Id: I73a7e83a785d6aa6f9b5d22cf66e22f0a39ed078
2013-04-17 10:54:30 -07:00
Ronald S. Bultje
c17c440233
Merge "Fairly basic integration of rectangular blocks in encoding RD loop." into experimental
2013-04-17 10:46:45 -07:00
Ronald S. Bultje
0c481f4d18
Add SSE2 versions for rectangular sad and sad4d functions.
...
About 11% overall encoder speedup with the sbsegment experiment enabled.
Change-Id: Iffb1bdba6932d9f11a6c791cda8697ccf9327183
2013-04-17 10:31:59 -07:00
Yaowu Xu
cb3192b72c
Change to do LPF in SB64 order
...
Change-Id: I41b3f5932ecd6256e8207369ad19aa81e7987be1
2013-04-17 10:15:02 -07:00
Ronald S. Bultje
e693472236
Fairly basic integration of rectangular blocks in encoding RD loop.
...
Adds RD integration for 32x16, 16x32, 64x32 and 32x64 rectangular blocks.
Derf almost +0.6%, HD a little over +1.0%, STDHD +1.3%.
Change-Id: Id651fdb6a655fdbb5c47009757e63317acfb88a5
2013-04-17 09:25:06 -07:00
Jingning Han
90a91cc683
Recursive partition syntax coding
...
Enable recursive partition information coding from SB64X64 down to
MB16X16. The bit-stream syntax is now supporting rectangular block
sizes. It starts from SB64X64 and recursively describes the partition
type of the current block. If the partition type is PARTITION_NONE,
the block is coded as a single unit; if it is PARTITION_HORZ or
PARTITION_VERT, the block is segmented into two independently coded
rectangular units, with no further partition needed; otherwise, the
block is segmented into 4 square blocks. i.e., PARTITION_SPLIT case,
each can be potentially further partitioned.
Forward adaptive probability modeling is used for the partition
information coding, conditioned on the current block size.
Change-Id: I499365fb547839d555498e3bcc0387d8a3587d87
2013-04-16 18:41:26 -07:00
Ronald S. Bultje
c0a1b5bc7e
Merge "Slightly hackish workaround to support rectangles in directional intra predictors." into experimental
2013-04-16 17:05:20 -07:00
Christian Duvivier
f13b69d07c
Faster vp9_short_fdct4x4 and vp9_short_fdct8x4.
...
Scalar path is about 1.3x faster (2.1% overall encoder speedup).
SSE2 path is about 5.0x faster (8.4% overall encoder speedup).
Change-Id: I360d167b5ad6f387bba00406129323e2fe6e7dda
2013-04-16 16:11:56 -07:00
Dmitry Kovalev
9087d6d470
Replacing VP9_COMBINEENTROPYCONTEXTS macro with function.
...
Change-Id: I3bbc31840af69481e1d9bb4427c9ee25abf82946
2013-04-16 15:30:28 -07:00
Dmitry Kovalev
1ad7c1f250
Renaming y1dc_delta_q, uvdc_delta_q, uvac_delta_q fields from VP9Common.
...
New names are y_dc_delta_q, uv_dc_delta_q, uv_ac_delta_q.
Change-Id: I4acae1fc23a4697ce2c5a5becb8dc28ef0a4b552
2013-04-16 15:05:52 -07:00
Ronald S. Bultje
94996b9d26
Slightly hackish workaround to support rectangles in directional intra predictors.
...
Change-Id: I8a4da6925f2d58a426c4d122df8b97bb69452e49
2013-04-16 14:33:03 -07:00
John Koleszar
e3cfe4e89e
Remove the mb_no_coeff_skip flag
...
This flag was added to VP8 to allow a mode where MB-level skipping
was not allowed, saving a bit per mb. It was never used in practice,
and hasn't been tested in VP9, so remove it.
Change-Id: Id450ec6904c6d06c1919508e7efc52d05cde5631
2013-04-16 12:36:16 -07:00
Dmitry Kovalev
5953a98631
Merge "Code cleanup inside vp9_reconintra4x4.c file." into experimental
2013-04-16 10:24:32 -07:00
Dmitry Kovalev
b30182c733
Merge "Adding mv_joint_vertical and mv_joint_horizontal functions." into experimental
2013-04-16 10:24:01 -07:00
Yunqing Wang
e87c7f0930
Merge "Optimize the scaling calculation" into experimental
2013-04-16 09:14:22 -07:00
Scott LaVarnway
466f395148
Merge "Removing extra params from x_add_residual() functions" into experimental
2013-04-16 08:58:28 -07:00
Yunqing Wang
148eb803bb
Optimize the scaling calculation
...
In decoder, the scaling calculation, such as (mv * x_num / x_den),
is fairly time-consuming. In this patch, we check if the scaling
happens or not at frame level, and then decide which function to
call to skip scaling calculation when no scaling is needed. Tests
showed a 3% decoder performance gain.
Change-Id: I270901dd0331048e50368cfd51ce273dd82b8733
2013-04-16 08:52:40 -07:00
Scott LaVarnway
6f95d53e37
Removing extra params from x_add_residual() functions
...
Now that the predictor is the dest, we do not need the
extra parameters.
Change-Id: I31e2c3d2015f4a1cd12e7f04536d8db478582a0a
2013-04-16 09:59:01 -04:00
John Koleszar
4054ff5da5
Merge "Removing TRUE and FALSE macro definitions." into experimental
2013-04-16 06:55:13 -07:00
Scott LaVarnway
5393379c84
Merge "Removing extra params in dequant functions" into experimental
2013-04-16 06:37:00 -07:00
Dmitry Kovalev
a0d9309eab
Removing TRUE and FALSE macro definitions.
...
Using regular 0 and 1 constants now.
Change-Id: Ie763503cbb727847cc8f1d6506cd6f2ee607f056
2013-04-15 15:24:39 -07:00
Ronald S. Bultje
f7d43d21bd
Merge "Add rectangular block size variance/sad functions." into experimental
2013-04-15 14:20:25 -07:00
Jingning Han
aaf33d7df5
Add rectangular block size variance/sad functions.
...
With this, the RD loop properly supports rectangular blocks.
Change-Id: Iece79048fb4e84741ee1ada982da129a7bf00470
2013-04-15 13:39:07 -07:00
Dmitry Kovalev
fd61b7ea10
Adding mv_joint_vertical and mv_joint_horizontal functions.
...
Change-Id: Ieaec2c48f3752b8558ba051caaf4ba2ab0e9e84d
2013-04-15 12:07:26 -07:00
Dmitry Kovalev
64de375e1f
Code cleanup inside vp9_reconintra4x4.c file.
...
Using ROUND_POWER_OF_TWO macro, using array initialization syntax for
less code.
Change-Id: I661453a6b29a9046fcff0a3f18fccb452b5eb39d
2013-04-15 11:15:56 -07:00
Scott LaVarnway
74610b1ae4
Removing extra params in dequant functions
...
Now that the predictor is the dest, we do not need the
extra parameters.
Change-Id: I78db73d39b5aff62f15303f3d51ad2797eae74b6
2013-04-15 13:43:11 -04:00