Commit Graph

4389 Commits

Author SHA1 Message Date
Jingning Han
3ba9dd4165 Enable inter predictor for rectangular block size
Combine superblock inter predictors into a unified function that
allows configurable block width and height. The inter predictions
of block sizes smaller than 16x16 are handled differently. To be
continued on merging them later.

Change-Id: I14075959dd5e221f00c205c99ca35c1c31ef728e
2013-04-12 11:51:58 -07:00
Scott LaVarnway
d7b7d625b1 Removed unnecessary copy from vp9_dequant_iht_add_8x8_c
Change-Id: I8fff2216c169c872f7073e66357e400f78a3445d
2013-04-12 14:33:39 -04:00
Jingning Han
840a910b65 Merge changes I196814c0,I896fdfa0 into experimental
* changes:
  Move prediction hit counting to update_state().
  Merge loop over all macroblock modes into encode_sb_row().
2013-04-12 10:51:06 -07:00
Yaowu Xu
c2ad69bcf4 Reorder enum i4X4 predcition modes
To match the order of  directional intra prediction modes for larger
blocks, also renamed the i4x4 prediction modes to mirror the larger
variants.

Change-Id: I77cea4d0add6c7758460bf9c7a2fe59aca601f0b
2013-04-12 10:13:23 -07:00
Yaowu Xu
7de5edd14a Rename B_PRED to I4X4_PRED
So it is consistent with I8x8_PRED.

Change-Id: Iefa65124b2419690d83e526c611129c0ede29d11
2013-04-12 09:23:58 -07:00
Scott LaVarnway
aa25f6a3df Merge "Remove unnecessary vp9_copy_memNxN() calls" into experimental 2013-04-12 05:24:30 -07:00
Ronald S. Bultje
79fd8c29d6 Move prediction hit counting to update_state().
The probabilities derived from these statistics are used in bitstream
writing; therefore, we should only do this when we actually decide to
use macroblock coding (over superblock coding). Derf gains +0.15%.

Change-Id: I196814c070a7c79889590658ce10a6eb07454389
2013-04-11 17:13:02 -07:00
Scott LaVarnway
02162f1be5 Remove unnecessary vp9_copy_memNxN() calls
The build predictors now output directly to the dest.  These
copies are no longer required.

Change-Id: I8e91eda6b49993e6c16cfadc705d82a7e80f19b2
2013-04-11 20:03:48 -04:00
Jingning Han
815e95fbeb Make intra predictor support rectangular blocks
The intra predictor supports configurable block sizes. It can handle
intra prediction down to 4x4 sizes, when enabled in BLOCK_SIZE_TYPE.

Change-Id: I7399ec2512393aa98aadda9813ca0c83e19af854
2013-04-11 16:45:57 -07:00
Ronald S. Bultje
d415d28717 Merge loop over all macroblock modes into encode_sb_row().
Rename pick_mb_modes to pick_mb_mode, since it now handles only a
single macroblock. This is consistent with pick_sb_mode handling a
single non-macroblock.

Change-Id: I896fdfa06436b2d8c24d6474718cc74420df6b3b
2013-04-11 15:56:39 -07:00
John Koleszar
2f19cd03aa Merge "Remove unused vp9_recon_mb{y,uv}_s" into experimental 2013-04-11 15:51:20 -07:00
Ronald S. Bultje
deeef42b77 Merge "Remove subtract_mb* functions." into experimental 2013-04-11 15:50:40 -07:00
Dmitry Kovalev
4fdf8ccca2 Adding vp9_read_and_apply_sign function.
Change-Id: I9951a06dbe4514cc1cf69ff4349c4e12cb4a318c
2013-04-11 15:36:43 -07:00
Scott LaVarnway
cff266bbef Merge "WIP: removing predictor buffer usage from decoder" into experimental 2013-04-11 15:24:33 -07:00
Ronald S. Bultje
56d01ee0a6 Merge "Remove unused macroblock versions of reconstruction functions." into experimental 2013-04-11 15:19:08 -07:00
Ronald S. Bultje
44dc18064e Merge "Remove "tplist" from VP9_COMP." into experimental 2013-04-11 15:17:03 -07:00
Ronald S. Bultje
69902c6bf0 Merge "Merge pick_sb_modes and pick_sb64_modes." into experimental 2013-04-11 15:06:37 -07:00
Deb Mukherjee
7a97959f13 Merge "Turning model-based updates on with modelcoefprob" into experimental 2013-04-11 14:54:53 -07:00
Deb Mukherjee
66f413af4f Turning model-based updates on with modelcoefprob
This patch changes the default with the modecoefprob expt
to use mode-based forward updates with one-node pegged
modeling.

The maximum difference with fully trained tables is now
less that 0.1%.

Change-Id: I06b44322e10c6703f93f3c1d48d973b1136a0618
2013-04-11 14:45:26 -07:00
John Koleszar
4ba74ae81a Merge "Remove unused vp9 ppc files" into experimental 2013-04-11 14:39:18 -07:00
John Koleszar
c382ed09f8 Remove unused vp9_recon_mb{y,uv}_s
These functions now are handled through the common superblock code.

Change-Id: Ib6688971bae297896dcec42fae1d3c79af7a611c
2013-04-11 14:05:59 -07:00
Scott LaVarnway
6189f2bcb1 WIP: removing predictor buffer usage from decoder
This patch will use the dest buffer instead of the
predictor buffer.  This will allow us in future commits
to remove the extra mem copy that occurs in the dequant
functions when eob == 0.  We should also be able to remove
extra params that are passed into the dequant functions.

Change-Id: I7241bc1ab797a430418b1f3a95b5476db7455f6a
2013-04-11 13:55:18 -07:00
John Koleszar
2dc6acc0fc Merge "vp8: set y_crop_{width,height}" into experimental 2013-04-11 13:36:44 -07:00
John Koleszar
8bf6de725c Merge changes I6721e42f,Iaffb1ae8 into experimental
* changes:
  tokenize: convert skippable functions
  Add foreach_transformed_block
2013-04-11 13:36:25 -07:00
John Koleszar
633d9e7b4f Remove unused vp9 ppc files
Change-Id: I3fe8c529ddec658cfa2376cfc05d9c8a5366e978
2013-04-11 13:29:37 -07:00
Dmitry Kovalev
24f18e1c34 Renaming vp9_token_struct to vp9_token and removing previous typedef.
Change-Id: If69c3d795f87af5cc7bfdfe70ef733c41b4d55c8
2013-04-11 13:01:52 -07:00
John Koleszar
c2bd46bf45 tokenize: convert skippable functions
Use the common block walker to calculate skippability.

Change-Id: I6721e42f065df237426c91c1d871ec226ba7cdcb
2013-04-11 12:27:37 -07:00
Ronald S. Bultje
340bc46f49 Remove subtract_mb* functions.
Use subtract_sb* instead.

Change-Id: I3f34140ab97061063a4452945347ef1fe37e13d1
2013-04-11 12:27:15 -07:00
Ronald S. Bultje
13e41ba440 Remove unused macroblock versions of reconstruction functions.
More specifically, remove vp9_quantize_mb*, vp9_optimize_mb*,
vp9_inverse_transform_mb* and vp9_transform_mb*. Instead, use the
generic _sb* functions that take a size argument, and call them with
BLOCK_SIZE_MB16X16.

Change-Id: I33024afea95d3a23ffbc1df7da426e4645110f29
2013-04-11 12:27:15 -07:00
Ronald S. Bultje
2e2b8a53cc Remove "tplist" from VP9_COMP.
It is write-only.

Change-Id: I2412344688d96593cc01c038e7f51410d0f85ed0
2013-04-11 12:27:14 -07:00
John Koleszar
42471f6b72 Add foreach_transformed_block
Adds a framework for doing arbitrary functions on each transform-
sized block in the mb/sb.

Change-Id: Iaffb1ae8db5ff2abfa8720c608c78376b42f2096
2013-04-11 11:42:19 -07:00
John Koleszar
c18b2617a4 Remove vp9_reset_mb_tokens_context
Use sb-common version instead.

Change-Id: If2552b5a39fd2e5272f66a41c5667dda85fd3939
2013-04-11 11:39:19 -07:00
Dmitry Kovalev
ec299e2092 Encoder code cleanup.
Removing duplicated code from vp9_encodemv.c and reusing ROUND_POWER_OF_TWO
macro definitions.

Change-Id: I9caf0c17f761ada7905cb99a3e2a31f871fef0f9
2013-04-11 11:08:00 -07:00
Ronald S. Bultje
605ff051f7 Merge pick_sb_modes and pick_sb64_modes.
Change-Id: Iad69e7a3b7e470acf6094f6a52e7da69066fd552
2013-04-11 09:33:49 -07:00
Ronald S. Bultje
38d7945345 Slight simplification of SB RD loop recursion conditions.
Change-Id: I87a406fcd18ab043253ca0c009d1182fdc5c3046
2013-04-11 09:14:55 -07:00
Ronald S. Bultje
4eb537c0e6 A few more cases where sb_type was used arithmetically.
With these fixed, the codec produces identical results regardless of
what literal values are used for the enum members in BLOCK_SIZE_*.

Change-Id: I26db8e08019b58ba432af1f0950ebe6b0eb4ad8c
2013-04-10 18:04:57 -07:00
Ronald S. Bultje
33d94a843f Remove copying of coefficients and predictor in i8x8 RD loop.
The resulting values are never used.

Change-Id: I688caf30da9aab87aa280cce913eda4f33172293
2013-04-10 17:39:03 -07:00
Ronald S. Bultje
8fb5be48a6 Make usage of sb_type independent of literal values.
Change-Id: I0d12f9ef9d960df0172a1377f8e5236eb6d90492
2013-04-10 17:38:57 -07:00
Ronald S. Bultje
b4f6098ef7 Make RD superblock mode search size-agnostic.
Merge various super_block_yrd and super_block_uvrd versions into one
common function that works for all sizes. Make transform size selection
size-agnostic also. This fixes a slight bug in the intra UV superblock
code where it used the wrong transform size for txsz > 8x8, and stores
the txsz selection for superblocks properly (instead of forgetting it).
Lastly, it removes the trellis search that was done for 16x16 intra
predictors, since trellis is relatively expensive and should thus only
be done after RD mode selection.

Gives basically identical results on derf (+0.009%).

Change-Id: If4485c6f0a0fe4038b3172f7a238477c35a6f8d3
2013-04-10 16:50:30 -07:00
Jingning Han
a4579e04c9 Merge "Make dequant/idct block size independent" into experimental 2013-04-10 16:47:53 -07:00
Jingning Han
bbd0063b5c Make dequant/idct block size independent
The unified dequantization, inverse transform, and adding functions
support rectangular block sizes. Also separate the operations on
luma and chroma components, in the consideration of the txfm_size
for uv components in rectangular block sizes.

Change-Id: I2a13246b2a9086b37d575d346070990d854cc110
2013-04-10 15:54:43 -07:00
Yaowu Xu
8e9819230d Merge "Remove obselete code" into experimental 2013-04-10 14:56:28 -07:00
Yaowu Xu
2da90fddc2 Remove obselete code
The strategy to run fast loop filter picking for encoder speed-up
should be revisited at a later stage.

Change-Id: I3b75e06d767cff41be952a42e63b3292f4eab996
2013-04-10 13:45:22 -07:00
Jingning Han
5b9dc7c68e Merge "Make SB Decoding units size-independent" into experimental 2013-04-10 13:43:51 -07:00
Dmitry Kovalev
0cef7234e1 Merge "Fixing upper case names." into experimental 2013-04-10 13:29:38 -07:00
Jingning Han
e63099d199 Make SB Decoding units size-independent
Unify the sb32x32 and sb64x64 decoding units, which also allow for
other rectangular block sizes.

Change-Id: Ia5187ab2af56f98c3f99272bdf4dbcabe798ad5d
2013-04-10 10:52:10 -07:00
Dmitry Kovalev
1c6df34c06 Merge "Code cleanup in bitstream code." into experimental 2013-04-10 10:18:50 -07:00
Dmitry Kovalev
2759ce85ad Merge "Adding setup_quantization function." into experimental 2013-04-10 10:16:30 -07:00
Dmitry Kovalev
b41e297582 Merge "Renaming inverse hybrid transform functions." into experimental 2013-04-10 10:16:00 -07:00
Dmitry Kovalev
20645ec4fb Merge "Cleanup of set_offsets function." into experimental 2013-04-10 10:15:13 -07:00