Commit Graph

209 Commits

Author SHA1 Message Date
Dmitry Kovalev
3c94fffdb0 Removing redundant call to set_mi_row_col.
This function is actually called from set_offsets which is called right
before vp9_read_mode_info.

Change-Id: Ibb9d5ad606194bc80eab264fad85b31c9dfd8f77
2013-07-12 16:25:23 -07:00
Dmitry Kovalev
aa518af8c7 Merge "Adding struct tx_probs and struct tx_counts to cleanup the code." 2013-07-12 16:02:09 -07:00
Dmitry Kovalev
cc662dd768 Adding struct tx_probs and struct tx_counts to cleanup the code.
Also removing unused declarations from vp9_entropymode.h file.

Change-Id: Ib9c5826db3584a32f6bb3297a76c522b99d83402
2013-07-12 15:22:38 -07:00
Dmitry Kovalev
db0d603b1c Making functions read_{inter, intra}_segment_id more similar.
Change-Id: I51f9ac910834f2d7aba2be4f7ffbce597e61a144
2013-07-12 14:50:33 -07:00
Dmitry Kovalev
dd150e8ea9 Removing redundant code mostly from vp9_pred_common.{h, c}.
Removing redundant function arguments and curly braces.

Change-Id: I46e02561f33fe02e84a3b19756f03b9504bd6a1b
2013-07-11 18:39:10 -07:00
Dmitry Kovalev
c4ad3273c7 Moving segmentation related vars into separate struct.
Adding segmentation struct to vp9_seg_common.h. Struct members are from
macroblockd and VP9Common structs. Moving segmentation related constants
and enums to vp9_seg_common.h.

Change-Id: I23fabc33f11a359249f5f80d161daf569d02ec03
2013-07-11 11:57:57 -07:00
Jim Bankoski
fb027a7658 removing case statements around prediction entropy coding
Removes SEG_ID
Removes MBSKIP
Removes SWITCHABLE_INTERP
Removes INTRA_INTER
Removes COMP_INTER_INTER
Removes COMP_REF_P
Removes SINGLE_REF_P1
Removes SINGLE_REF_P2
Removes TX_SIZE

Change-Id: Ie4520ae1f65c8cac312432c0616cc80dea5bf34b
2013-07-09 20:10:16 -07:00
Scott LaVarnway
69d1d1d865 Removed unnecessary xd->mode_info_context assignment
mi is xd->mode_info_context

Change-Id: Ib101be922b695205ec57b5ce1828ba19bde5b41c
2013-07-09 13:41:34 -04:00
Jim Bankoski
7f960223ea cleanup read_mode_info if (1)
Change-Id: I851af23c787a2d3637d84244b9f75063cbf782f1
2013-07-09 09:04:45 -07:00
Jim Bankoski
c36d502e92 decoder speedup - get-segment-id only if segmentation enabled
Change-Id: I9355f8446660aeb7dfdbc5ee56635c791ac35e95
2013-07-09 08:52:30 -07:00
Dmitry Kovalev
be77f6bbbf Removing redundant struct from union b_mode_info.
Change-Id: I08fc6e474ff2c12cfa065bae4989c724276e2c83
2013-07-02 16:51:57 -07:00
Dmitry Kovalev
7ed754995d Additional vp9_decodemv.c cleanup.
Change-Id: I5b413bc0884af0bda38c05332d86490103905b3b
2013-07-01 16:14:13 -07:00
Dmitry Kovalev
15fefced7d Cleanup inside vp9_decodemv.c.
Adding read_skip_coeff function. Renaming decode_mv to read_mv for
consistency with another function names. Removing redundant function
arguments. Renaming kfread_modes to read_intra_mode_info, read_mb_modes_mv
to read_inter_mode_info, vp9_decode_mb_mode_mv to vp9_read_mode_info,
vp9_decode_mode_mvs_init to vp9_prepare_read_mode_info. Inlining function
mb_mode_mv_init inside vp9_prepare_read_mode_info.

Change-Id: Ifee05d333da4cd331d4aff40ce41ccd9b70e494a
2013-06-28 15:32:31 -07:00
Dmitry Kovalev
59070f6e3c Merge "Removing CONFIG_DEBUG checks on assertions." 2013-06-28 14:03:28 -07:00
Dmitry Kovalev
8e6ce6bb9e Removing CONFIG_DEBUG checks on assertions.
Adding CHECK_MEM_ERROR macro to vp9_common.h and removing two duplicated
ones from vp9_onyx_int.h and vp9_onyxd_int.h.

Change-Id: I916afec61b3019f18193135dac7c35ed0f89b8b6
2013-06-28 10:36:20 -07:00
Dmitry Kovalev
3231da0a9e Decoder's code cleanup.
Using vp9_set_pred_flag function instead of custom code, adding
decode_tokens function which is now called from decode_atom,
decode_sb_intra, and decode_sb.

Change-Id: Ie163a7106c0241099da9c5fe03069bd71f9d9ff8
2013-06-27 16:15:43 -07:00
Dmitry Kovalev
a3664258c5 Merge "General cleanup in segmentation-related code." 2013-06-27 14:57:07 -07:00
Dmitry Kovalev
be83ef3104 Merge "Moving subexp encoding functions in separate vp9_dsubexp.c file." 2013-06-27 14:55:18 -07:00
Dmitry Kovalev
be07485e9a General cleanup in segmentation-related code.
Using consistent function and variable names.

Change-Id: I2deb3fded8797453a2081836c9ce2e79ade06eb7
2013-06-26 10:27:28 -07:00
Dmitry Kovalev
6fb10f2de4 Renaming "nmv" to "mv".
Change-Id: I8299f55c3b930221e52c2237f2ddea65b94fd33b
2013-06-25 15:19:18 -07:00
Dmitry Kovalev
9467571777 Moving subexp encoding functions in separate vp9_dsubexp.c file.
Change-Id: Idbb2ea80f764fa830fe2ddcfc54ef7fe232f05a8
2013-06-25 11:53:17 -07:00
Dmitry Kovalev
40141681c0 Removing find_seg_id and using vp9_get_pred_mi_segid instead.
Change-Id: Ia40229903c08f14020e90e94cfdf494aba1be827
2013-06-21 13:05:10 -07:00
Dmitry Kovalev
8283d893eb Merge "Renaming 'nmv' to 'mv' for several functions." 2013-06-20 10:17:12 -07:00
Dmitry Kovalev
77186ee61a Merge "Function decomposition inside vp9_decodemv.c file." 2013-06-20 10:17:05 -07:00
Dmitry Kovalev
15eaba103d Function decomposition inside vp9_decodemv.c file.
Change-Id: Iab96e6a50aec543c63e15cd134f9d5f01ca7ceff
2013-06-19 13:09:34 -07:00
Yaowu Xu
12180c8329 Remove unnecessary copying of probs.
Change-Id: Ic924f07c6ab0c929c6cdf11880d3c625806e272c
2013-06-18 23:02:27 -07:00
Dmitry Kovalev
87e1fa7627 Renaming 'nmv' to 'mv' for several functions.
Change-Id: I183a38997a9d01e4a1b869e92509f6915216fa09
2013-06-18 18:28:10 -07:00
John Koleszar
8e47093c9e Remove unused need_to_clamp_mvs
This flag no longer needed.

Change-Id: If13482015ddb92d225792ea5c0ee455d2285d1f6
2013-06-12 16:50:14 -07:00
Deb Mukherjee
a43ff15399 New probs for filters/tx_size and a few others
* New probs for subpel filters/tx_count
* Makes a change to not reset to defaults for the tx_size
probs if an intermediate frame reverts to using a fixed tx_size.
* A few updates to the parameters for backward adaptation for mode/mv
* some cosmetic cleanups

derf300: +0.06%

Change-Id: I22994d659bc31ca7a4fc8820fde24001e64a2920
2013-06-10 16:38:47 -07:00
Adrian Grange
eac344ef10 Implement intra-coded frames
Implements ability to signal and decode frames that are
encoded using only intra coding modes. Only the decode
side has been implemented here.

Change-Id: I53ac6a8d90422cd08ba389e5236e15b45f9e93de
2013-06-10 11:43:16 -07:00
Deb Mukherjee
21401942b0 Coding tx-size selection by use of spatial context
Adds coding of transform size within a frame by use of context
of transform sizes selected in left and above blocks.

Also incorporates code for generating stats.

TODO: generate and incorporate new default stats

Change-Id: I6a7af099f6ad61d448521d9a51167aedaf638ed6
2013-06-07 16:07:58 -07:00
Deb Mukherjee
869a39ba60 Cleans up mbskip encoding
Refactors mbskip coding to be compatible with coding of the rest of
the symbols. Adds forward/backward adaptation and removes a lot of
the legacy code.

Results:
fast50: +1.6%
derfraw300: +0.317%

Change-Id: I395a2976d15af044d3b8ded5acfa45f6f065f980
2013-06-07 16:00:26 -07:00
Ronald S. Bultje
6462afe088 Fix ref_frame segment feature when it is intra.
Change-Id: Ifbf790c14cee0c08a27f6728e3c637404e1f8477
2013-06-07 13:57:55 -07:00
Paul Wilkins
340c7a48e6 Change to segment ref frame feature.
Simplify feature to only support a single reference frame
instead of a mask.

Change-Id: I5dd3a98c7a224aafb35708850ab82e2f220e68fb
2013-06-07 21:42:22 +01:00
Deb Mukherjee
3ee1a21a42 Coding updates for tx-size selection
Changes to the coding of transform sizes, along with forward
and backward probability updates.

Results:
derf300: +0.241%

Context based coding of transform sizes will be in a separate
patch.

Change-Id: I97241d60a926f014fee2de21fa4446ca56495756
2013-06-07 08:54:00 -07:00
Ronald S. Bultje
6ef805eb9d Change ref frame coding.
Code intra/inter, then comp/single, then the ref frame selection.
Use contextualization for all steps. Don't code two past frames
in comp pred mode.

Change-Id: I4639a78cd5cccb283023265dbcc07898c3e7cf95
2013-06-06 17:28:09 -07:00
Ronald S. Bultje
ad34368786 New intra mode and partitioning probabilities.
Split partition probabilities between keyframes and non-keyframes,
since they are fairly different. Also have per-blocksize interframe
y intramode probabilities, since these vary heavily between different
blocksizes.

Lastly, replace default probabilities for partitioning and intra modes
with new ones generated from current codec. Replace counts with actual
probabilities also.

Change-Id: I77ca996e25e4a28e03bdbc542f27a3e64ca1234f
2013-06-06 10:45:30 -07:00
Deb Mukherjee
9504f5fac7 Merge "Fix in forward updates for INTRA modes/partitions" into experimental 2013-06-06 00:07:06 -07:00
Deb Mukherjee
2693704621 Fix in forward updates for INTRA modes/partitions
Results:
derfraw300: +0.2

Change-Id: Ie40dc3b31e877ee705f936066d7fa5702bd01ecd
2013-06-05 15:43:44 -07:00
Deb Mukherjee
30226a658f Cosmetic renaming VP9_MVREFS to VP9_INTER_MODES
NO bitstream change

Change-Id: I79f6146dac5fdd157051b6f8dc611c0b7b5e5f7f
2013-06-05 11:24:01 -07:00
Deb Mukherjee
83885235a7 Clean-ups on switchable interpolation and mv_ref
Adds backward adaptation and differential forward updates of switchable
interpolation filter probabilities. Also adds some cosmetic cleanups
and minor fixes on mv_ref probabilities.

derfraw300: +0.353% (with most coming from switchable interp changes)

Change-Id: Ie2718be73528c945fd0d80cfd63ca2d9cb3032de
2013-06-05 10:11:52 -07:00
Scott LaVarnway
1e025dbfd1 Merge "Moved use_prev_in_find_mv_refs check to frame level" into experimental 2013-05-31 09:35:51 -07:00
Ronald S. Bultje
310bc1030a Merge "Merge VP9_YMODES, VP9_UV_MODES, INTRA_MODE_COUNT and cousins." into experimental 2013-05-30 20:58:19 -07:00
Ronald S. Bultje
16482bddf7 Merge "Remove splitmv." into experimental 2013-05-30 19:07:12 -07:00
Ronald S. Bultje
d2205f92c3 Merge changes I98c18fe5,I80c37cff into experimental
* changes:
  Remove i4x4_pred.
  Remove unused table.
2013-05-30 19:06:44 -07:00
Ronald S. Bultje
a433abbcad Merge VP9_YMODES, VP9_UV_MODES, INTRA_MODE_COUNT and cousins.
These are now merged in a new define called VP9_INTRA_MODES.

Change-Id: I0890f895756a7395d84c92f98f43e43f4cf9050d
2013-05-30 17:21:06 -07:00
Ronald S. Bultje
e6485581fe Remove splitmv.
We leave it in rdopt.c as a local define for now - this can be removed
later. In all other places, we remove it, thereby slightly decreasing
the size of some arrays in the bitstream.

Change-Id: Ic2a9beb97a4eda0b086f62c039d994b192f99ca5
2013-05-30 17:21:01 -07:00
Ronald S. Bultje
1efa79d32f Remove i4x4_pred.
It remains as a local define in rdopt.c so we can distinguish between
split and non-split modes in the RD loop, but disappears outside that
scope in the codec.

Change-Id: I98c18fe5ab7e4fbd1d6620ec5695e2ea20513ce9
2013-05-30 16:44:58 -07:00
Yunqing Wang
1badebc821 Merge "Remove set_scale_factors call" into experimental 2013-05-30 15:25:01 -07:00
Ronald S. Bultje
98c192ae83 Merge all intra mode coding trees into a single one.
Also merge all counters. This removes a few unused probability updates
from the bitstream.

Change-Id: I20f58853e9dac84d8c0d9703ae012c55917516eb
2013-05-30 09:58:53 -07:00
Yunqing Wang
c725ad3756 Remove set_scale_factors call
We could remove calling set_scale_factors() since it is also
done in set_refs() right after vp9_decode_mb_mode_mv() call in
decode_modes_b().

Change-Id: I9e62c90ffb770240987cd42815786567261b5d97
2013-05-29 17:07:53 -07:00
Scott LaVarnway
353642bc53 Moved use_prev_in_find_mv_refs check to frame level
This patch checks at the frame level to see if the previous
mode info context can be used.  This patch eliminates the
flag check that was done for every mode and removes another
check that was done prior to every vp9_find_mv_refs().

Change-Id: I9da5e18b7e7e28f8b1f90d527cad087073df2d73
2013-05-29 16:42:23 -04:00
Ronald S. Bultje
4487f5a690 Remove some unused code related to macroblock/splitmv coding.
Change-Id: Ic40d56fb162f4e201547dfae33e62ccd9e865889
2013-05-29 06:29:56 -07:00
Ronald S. Bultje
a4dd99b34d Merge "Moving txfm_size bits before prediction mode bits." into experimental 2013-05-28 09:40:42 -07:00
Scott LaVarnway
9a27b627b8 Merge "Removed setup_pre_planes() call in read_mb_modes_mv()" into experimental 2013-05-28 09:07:51 -07:00
Yaowu Xu
2b96ffe025 a few clean-ups
1. remove prediction mode conversion
2. unified bmode, same for key and non-key frame
3. set I4X4_PRED count for pdf to 0, as I4X4_PRED is no longer
coded ever. It is determined by ref_frame and block partition

Change-Id: If5b282957c24339b241acdb9f2afef85658fe47d
2013-05-27 13:53:56 -07:00
Sami Pietila
80812829c2 Moving txfm_size bits before prediction mode bits.
Hardware implementation needs to load coeff probs based on the
transform size. For selectable transform size, moving these bits
earlier in the bitstream adds some delay giving time to preload
the probs and speeds up the decoding process.

Change-Id: I3bfc1f662ae6f219c9286fe9ae6310c7d8a63ea7
2013-05-27 10:32:05 +03:00
Ronald S. Bultje
5cac66078e Remove splitmv.
Also do per-partition motion vector referencing in <sb8x8 partitions,
and adjust mvref finding for sub8x8 partitions.

Change-Id: Id3ed1ed4d2a8910d11d327db6cc63b8eb79f941f
2013-05-26 14:40:49 -07:00
Jingning Han
d093027791 Fix transform size coding mismatch
This commit fixes a transform size enc/dec mismatch issue in the
key frame coding.

Change-Id: I0c4f40464a367b33dd91ace84506650b1aec2873
2013-05-24 11:30:58 -07:00
Scott LaVarnway
64b30f41cd Removed setup_pre_planes() call in read_mb_modes_mv()
This code does not seem to be necessary anymore.

For the 1080p clip used, the decoder performance improved by
~2%.

Change-Id: I66bb0496d4998b0d6c6637c746b642b77bdbef88
2013-05-24 13:39:48 -04:00
Jingning Han
7ac5ac52f9 Merge 4x4 block level partition into codebase
Move 4x4/4x8/8x4 partition coding out of experimental list.

This commit fixed the unit test failure issues. It also resolved
the merge conflicts between 4x4 block level partition and iterative
motion search for comp_inter_inter.

Change-Id: I898671f0631f5ddc4f5cc68d4c62ead7de9c5a58
2013-05-23 11:58:50 +01:00
Jingning Han
d2cacdc530 Merge "Make the intra rd search support 8x4/4x8" into experimental 2013-05-22 10:00:15 -07:00
Yaowu Xu
8ba92a0bed changes intra coding to be based on txfm block
This commit changed the encoding and decoding of intra blocks to be
based on transform block. In each prediction block, the intra coding
iterates thorough each transform block based on raster scan order.

This commit also fixed a bug in D135 prediction code.

TODO next:
The RD mode/txfm_size selection should take this into account when
computing RD values.

Change-Id: I6d1be2faa4c4948a52e830b6a9a84a6b2b6850f6
2013-05-22 11:53:19 +01:00
Jingning Han
f153a5d063 Make the intra rd search support 8x4/4x8
This commit allows the rate-distortion optimization of intra coding
capable of supporting 8x4 and 4x8 partition settings.

It enables the entropy coding of intra modes in key frame using a
unified contextual probability model conditioned on its above/left
prediction modes.

Coding performance:
derf 0.464%

Change-Id: Ieed055084e11fcb64d5d5faeb0e706d30268ba18
2013-05-21 21:03:00 -07:00
Jingning Han
1f7d810a72 Merge "Deprecate 4x4 intra modes from bit-stream" into experimental 2013-05-21 15:59:58 -07:00
Yunqing Wang
e9950b0768 Unnecessary passing of prev_mi
Passing prev_mi is not needed.

Change-Id: I6453bb47514ddafd555864d190ecf6d1a6bdc136
2013-05-21 09:22:49 -07:00
Jingning Han
1e6be7bc75 Deprecate 4x4 intra modes from bit-stream
Replace B_DC_PRED like syntax element writing/reading with sb_ymode
set (e.g., DC_PRED, etc).

Change-Id: I293006a6b3bcd130c08ea9f053e7a79c6819c6f8
2013-05-20 12:14:24 -07:00
Jingning Han
810b612c23 Enable bit-stream support to 8x4 and 4x8 partition
The recursive partition type search is enabled down to 4x4, 4x8 and
8x4, followed by the corresponding rate-distortion optimization for
the per-partition encoding mode decisions.

The bit-stream writing/reading synchronized in supporting the
rectangular partition of 8x8 block.

This provides above 1% coding performance gains on derf.

To do next:
1. re-design the rate-distortion loop for inter prediction below 8x8.
2. re-design the rate-distortion loop for intra prediction below 4x4.
3. make the loop-filter aware of rectangular partition of 8x8 block.
4. clean the unused probability models.
5. update default probability values.

Change-Id: Idd41a315b16879db08f045a322241f46f1d53f20
2013-05-19 14:59:04 -07:00
Dmitry Kovalev
1e3cdc1dd2 Merge "Combining integer and fractional parts of mvs for entropy coding." into experimental 2013-05-16 14:16:47 -07:00
Dmitry Kovalev
18375238e9 Combining integer and fractional parts of mvs for entropy coding.
Combining encode_nmv_component with encode_nmv_component_fp
and read_nmv_component with read_nmv_component_fp. Bitstream is slightly
changed (only the order of bits), here are the results on test sets:
stdhd: +0.047, yt: -0.038, derf: +0.001, hd: -0.011.

Change-Id: I1be312e976796df78ca63368702d0ee19f2b8c50
2013-05-15 12:37:03 -07:00
Jingning Han
1f26840fbf Enable recursive partition down to 4x4
This commit allows the rate-distortion optimization recursion
at encoder to go down to 4x4 block size. It deprecates the use
of I4X4_PRED and SPLITMV syntax elements from bit-stream
writing/reading. Will remove the unused probability models in
the next patch.

The partition type search and bit-stream are now capable of
supporting the rectangular partition of 8x8 block, i.e., 8x4
and 4x8. Need to revise the rate-distortion parts to get these
two partition tested in the rd loop.

Change-Id: I0dfe3b90a1507ad6138db10cc58e6e237a06a9d6
2013-05-14 12:39:56 -07:00
Dmitry Kovalev
a0b6b8a7d4 Merge "Removing unused code + little cleanup." into experimental 2013-05-08 11:23:14 -07:00
Dmitry Kovalev
cba0a5db2b Removing unused code + little cleanup.
Change-Id: I81c19a8f19cfb5c7183609656ade833d72feb500
2013-05-07 16:56:22 -07:00
Paul Wilkins
1ed57a6a62 Deprecate comp_interintra_pred experiment.
Delete code under the CONFIG_COMP_INTERINTRA_PRED
flag.

Change-Id: I3d1079cf46305c08f7e11d738596ea112e7b547f
2013-05-07 16:24:08 -07:00
Paul Wilkins
8c1b516d10 Deprecate the newbintramode experiment.
Clean out code relating to newbintramode.

Change-Id: Ie91f4f156cdf60ce0da8ca407c1c9cb00c7d0705
2013-05-07 16:00:59 -07:00
Jingning Han
776c1482a3 Merge SB8X8 into the codebase
Pull sb8x8 out of experimental list. verified via borg run tests.
Fixed unit test failures.

Change-Id: I12a4bbd17395930580c048ab68becad1ffe46e76
2013-05-07 09:08:25 -07:00
Jingning Han
35e8072613 Fix tile independency issue in sb8x8
Resolved the unit test failure on tile independence when sb8x8
enabled.

Change-Id: I23ca86c88170e49ca160e8e897d913905e6080ce
2013-05-06 21:56:45 -07:00
Scott LaVarnway
be7d4f96a2 Merge "Removed is_inter_mode() check" into experimental 2013-05-03 07:34:29 -07:00
Jingning Han
1e26cdc178 Merge "Cache splitmv motion vectors appropriately in decoder." into experimental 2013-05-02 14:32:57 -07:00
Ronald S. Bultje
c8de931e06 Merge "Fix i4x4 mode reading and writing in sb8x8 bitstream." into experimental 2013-05-02 13:56:06 -07:00
Ronald S. Bultje
168d313888 Cache splitmv motion vectors appropriately in decoder.
This fixes some problems in splitmv-related bitstream parsing in the
sb8x8 experiment.

Change-Id: Id168f9ec9c88626877d8f536e6f394b6f4f782e4
2013-05-02 13:55:35 -07:00
Ronald S. Bultje
e931dac733 Fix i4x4 mode reading and writing in sb8x8 bitstream.
Don't allow i4x4 except for sb8x8 recursion step. Read only 4 (not 16)
i4x4 submodes if we are i4x4.

Change-Id: Iaaaced1a134006b2c96eed66f014300eae41e0ed
2013-05-02 13:01:09 -07:00
Scott LaVarnway
37c3144ed7 Removed is_inter_mode() check
If a reference frame is inter, the only valid modes would
be inter modes.  This check is unnecessary.

Change-Id: Ib8433ab5a3418f94149ee4e3062d48d7740d225a
2013-05-02 13:44:33 -04:00
Dmitry Kovalev
519d9f3e16 Merge "Using treed_read/treed_write functions for segment ids." into experimental 2013-05-02 10:40:58 -07:00
Ronald S. Bultje
29492a5e14 Fix bug in sb8x8 bitstream decoding.
Change-Id: I7ac69a369851b09d9422f2e3c62b12b3fcd49a4c
2013-05-01 17:13:27 -07:00
Jingning Han
2bf1dc2e23 Enable bit-stream support to SB8X8
This commit enables bit-stream writing and reading for recursive
partition down to block 8x8.

Change-Id: I163cd48d191cc94ead49cbb7fc91374f6bf204e2
2013-05-01 13:03:54 -07:00
Ronald S. Bultje
d068d869b9 sb8x8 integration in rd loop.
Work-in-progress, not yet ready for review. TODO items:
- bitstream writing (encoder) and reading (decoder)
- decoder reconstruction

Change-Id: I5afb7284e7e0480847b47cd0097cb469433c9081
2013-04-30 16:13:20 -07:00
Dmitry Kovalev
b5364d4f3b Using treed_read/treed_write functions for segment ids.
Changing the order of probabilities inside mb_segment_tree_probs in order
to use treed_read/treed_write function instead of custom code.

Change-Id: I843487d5057913b9358db73da270893eefecc6c8
2013-04-30 14:06:49 -07:00
Jingning Han
9b935f9992 Add forward probability model update for partition
Enable forward model update for partition syntax coding.

Change-Id: If47b423b6d12f34614c57f25d235dc9ba688efc5
2013-04-27 16:47:04 +01:00
Ronald S. Bultje
1a46b30ebe Grow MODE_INFO array to use an 8x8 basis.
Change-Id: I087e08e7909a406b71715b8525c104208daa6889
2013-04-26 11:57:17 -07:00
Scott LaVarnway
57f180b388 Removed bmi from blockd
This originally was "Removed update_blockd_bmi()".  Now,
this patch removed bmi from blockd and uses the bmi found
in mode_info_context.  Eliminates unnecessary bmi copies between
blockd and mode_info_context.

Change-Id: I287a4972974bb363f49e528daa9b2a2293f4bc76
2013-04-26 10:19:43 -04:00
Dmitry Kovalev
61a47da869 Adding is_inter_mode function.
Change-Id: I2d32d46002cb92c63050c2b8328865c406103621
2013-04-25 10:23:00 -07:00
Yaowu Xu
bcf82cf503 Merge two similar functions into one
Function set_mb_row() and set_mb_col() do similar work and are always
called together, this commit merged them into a single function for
clarity and easy maintainence.  This was a TODO item.

Change-Id: I956bd9ed6afb8b2b0469b20fd8bc893b26f8a0f3
2013-04-24 15:58:03 -07:00
Jingning Han
ff2b8aa2c9 Contextual entropy coding of partition syntax
This commit enables selecting probability models for recursive block
partition information syntax, depending on its above/left partition
information, as well as the current block size. These conditional
probability models are reasonably stationary and consistent across
frames, hence the backward adaptive approach is used to maintain and
update the contextual models.

It achieves coding performance gains (on top of enabling rectangular
block sizes):
derf:   0.242%
yt:     0.391%
hd:     0.376%
stdhd:  0.645%

Change-Id: Ie513d9673337f0d27abd65fb566b711d0844ec2e
2013-04-24 14:23:14 -07:00
Paul Wilkins
31ee193a9c Extension of segmentation to 8 segments.
Also some further simplification following removal
of top node code.

There is an issue in regards to the shared file vp8cx.h
in regard to the roi_map as this interface assumes that
there are only 4 segments. I have left the value here as
4 for now meaning that the roi_map interface is broken
for VP9.

Note that this change would have been easier if I hadn't
had to search for hard wire instances of the number 4
and <= 3.

Change-Id: Ia8b6deea4be4dbd20deb1656e689dd43a5f190e8
2013-04-24 16:36:47 +01:00
Paul Wilkins
c77aff1286 Simplify Segment Coding
Remove top node optimization.
The improvement this gives is not sufficient to justify
the extra complexity.

Change-Id: I2bb4a12a50ffd52cacfa4a3e8acbb2e522066905
2013-04-24 10:47:12 +01:00
Ronald S. Bultje
276a1106e6 Merge changes I54acef34,I72d42971 into experimental
* changes:
  Make some sb_type comparisons independent of literal enum values.
  Make loopfilter aware of rectangular blocks.
2013-04-23 15:29:19 -07:00
Dmitry Kovalev
a21359cbea Merge "Adding select_txfm_size function + vp9_decode_frame cleanup." into experimental 2013-04-23 13:53:14 -07:00
Ronald S. Bultje
5ba98ebcf1 Make some sb_type comparisons independent of literal enum values.
Change-Id: I54acef342b8e787e05af0febd7cf0d7d10288383
2013-04-23 12:34:32 -07:00
Scott LaVarnway
e3167b8c23 Merge "Eliminated prev_mip memsets/memcpys" into experimental 2013-04-23 10:22:13 -07:00