Граф коммитов

5031 Коммитов

Автор SHA1 Сообщение Дата
Jingning Han 5c05fbf6bb Merge "Refactor 4x4 block level rd loop" into experimental 2013-05-29 16:35:02 -07:00
Deb Mukherjee b8b3f1a46d Balancing coef-tree to reduce bool decodes
This patch changes the coefficient tree to move the EOB to below
the ZERO node in order to save number of bool decodes.

The advantages of moving EOB one step down as opposed to two steps down
in the other parallel patch are: 1. The coef modeling based on
the One-node becomes independent of the tree structure above it, and
2. Fewer conext/counter increases are needed.

The drawback is that the potential savings in bool decodes will be
less, but assuming that 0s are much more predominant than 1's the
potential savings is still likely to be substantial.

Results on derf300: -0.237%

Change-Id: Ie784be13dc98291306b338e8228703a4c2ea2242
2013-05-29 16:25:52 -07:00
Dmitry Kovalev 38cb616fbf Merge "Compressed/uncompressed frame header changes." into experimental 2013-05-29 15:29:44 -07:00
Jim Bankoski aae78c8ac7 valgrind - txfm_thresh not set
For 4x4 blocks valgrind points out the cache was uninitalized.
This resolves the issue by setting it.

Change-Id: I22733000da048643762813a84fbda66d8e4040d2
2013-05-29 13:56:08 -07:00
Jingning Han d0a3872019 Refactor 4x4 block level rd loop
This commit makes clean-ups in the rate-distortion loop for 4x4,
4x8, and 8x4 block sizes for the use of iterative motion search.

Removed unnecessary use of bmi in handle_inter_mode.

Deprecated loop over labels in the 4x4/4x8/8x4 block rd search.

Change-Id: I71203dbb68b65e66f073b37abd90d82ef5ae6826
2013-05-29 13:44:52 -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
Jim Bankoski 5e5470b254 fix valgrind warning
scales for second reference frame vars are unitialized if the
second ref frame is one of of those disallowed by refframeflags

Change-Id: I4ce42de391178c1699dcaede18c5f12c84993c61
2013-05-29 12:34:10 -07:00
Jingning Han 84deeddbaf Merge "Refactor rd loop for inter modes" into experimental 2013-05-29 10:55:23 -07:00
Jingning Han 6c97bba403 Merge "further clean-ups on intra4x4 coding" into experimental 2013-05-29 10:55:14 -07:00
Sami Pietila 88a4d4c510 Residual coding to cache energy class of tokens.
Proposal for tuning the residual coding by changing how the context
from previous tokens is calculated. Storing the energy class of previous
tokens instead of the token itself eases the critical path of
HW implementations.

Change-Id: I6d71d856b84518f6c88de771ddd818436f794bab
2013-05-29 15:21:01 +01: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 2afc3422c6 Remove unused and outdated debug code.
Change-Id: I0e789bdeaed60f920f7a470e56a8d4ea374233fc
2013-05-28 19:15:57 -07:00
Dmitry Kovalev 18c83b3714 Compressed/uncompressed frame header changes.
Adding API to read/write uncompressed frame header bits (it is not final
yet). Separate functions to read/write uncompressed header. Moving
clr_type, error_resilient_mode, refresh_frame_context,
frame_parallel_decoding_mode, frame_context_idx from compressed partition
to uncompressed frame header.

Change-Id: Id3ed8a387980c652ae147549412f4ec24a0a5bd0
2013-05-28 18:07:54 -07:00
Deb Mukherjee a09707b7be Build fix when ENTROPY_STATS is defined
Fixes a build issue due to removal of VP9_KF_BINTRAMODES macro,
when ENTROPY_STATS is on.

Change-Id: I75c61702bf626376c942ab49ab887714b43284f0
2013-05-28 17:07:27 -07:00
Deb Mukherjee 3d4e032e16 Merge "Clean up related to coefficient modeling" into experimental 2013-05-28 16:55:02 -07:00
Deb Mukherjee d8c0989d56 Clean up related to coefficient modeling
Uses reduced arrays for probabilities and branch counts in the
encoder. No change in bitstream.

Change-Id: Iec605446f44db4cd325eb45fa12a3003a6ee29db
2013-05-28 16:32:03 -07:00
Jingning Han 94d700e763 Refactor rd loop for inter modes
This commit pulls the iterative motion search for compound inter-
inter out from handle_inter_mode_ as a separate function. Hence,
it is applicable to 4x4/4x8/8x4 level compound inter search to be
enabled later.

Also edit the rd loop for 4x4 inter block sizes for cosmetic
purpose.

Change-Id: Ibc71a11cbe5a26cd52faba01026cf8446cf4d2b4
2013-05-28 16:31:33 -07:00
Jingning Han 4729a6f389 further clean-ups on intra4x4 coding
Removed one 4x4 prediction step that was unnessary in the rd loop.
Removed a unused modecosts estimate from encoder side.

Change-Id: I65221a52719d6876492996955ef04142d2752d86
2013-05-28 11:19:05 -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
Paul Wilkins 245a11553a Merge "Remove loop dering experiment." into experimental 2013-05-28 05:34:14 -07:00
Dmitry Kovalev 1a24011469 Revert "Adding API to read/write uncompressed frame header bits." because of bitstream mismatches.
This reverts commit df037b615f

Change-Id: I1a529f2590df7bc912f5035d22311268933e3dd6
2013-05-28 02:24:52 -07:00
Yaowu Xu 601bab4fde Merge "a few clean-ups" into experimental 2013-05-27 15:16:21 -07:00
Ronald S. Bultje d27ae7b6a5 Merge "Decrease scope of frame_mv argument to handle_inter_mode()." into experimental 2013-05-27 14:42:38 -07:00
Ronald S. Bultje cba8e16e93 Decrease scope of frame_mv argument to handle_inter_mode().
Change-Id: I81c637c61ecc33cb66beb59a2a33166d66b9a0a2
2013-05-27 14:16:45 -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
Timothy B. Terriberry 95339d6825 Reduce WHT complexity.
Saves 1 add, 3 shifts (and a shift bias) per 1-D transform.

Change-Id: I1104bb1679fe342b2f9677df8a9cdc0cb9699e7d
2013-05-27 13:23:52 -07:00
Jingning Han 75fca6fff0 Merge "Reduce bmi buffer length from 16 to 4" into experimental 2013-05-27 09:18:50 -07:00
Jingning Han de735929cf Reduce bmi buffer length from 16 to 4
This commit removes the use of bmi_ in the first-pass encoding by
forcing encode_intra4x4block_ to use DC_PRED, followed by DCT_DCT
only, as John suggested. This makes the need for bmi buffer only
up to 4 entries, instead of 16.

Change-Id: I3410007dfae789ee46a09ae20c39d3ce3c7954aa
2013-05-27 08:59:15 -07:00
Ronald S. Bultje f188bf1c3d Remove unused mode_index argument from handle_inter_mode().
Change-Id: I07b8c15f33e6e7c63dd0033c18c4ac5c0303cf32
2013-05-27 08:49:17 -07:00
Ronald S. Bultje 01b7f72aab Fix coding statistics compilation.
Change-Id: I21e7c4ef6bc80f4b9281fc94c88fb710b1595c23
2013-05-27 08:29:07 -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
Paul Wilkins 845bc13ba9 Remove loop dering experiment.
Change-Id: I1a979bf74c286b157c31bab6bdcba0494acb4918
2013-05-25 10:09:23 +01:00
Dmitry Kovalev 0b2b81249b Merge "Adding API to read/write uncompressed frame header bits." into experimental 2013-05-24 13:43:19 -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
Yaowu Xu a2db88fc26 Fix two bugs
1) Added an initialization of rd_tx_select_threshs[].
2) Made updating transform size counts to be consistent

Change-Id: Iaa9d6c6be825b0364c9d61a9802873d01356815c
2013-05-24 09:28:19 -07:00
Yaowu Xu f116abf774 update txfm size counting
Change-Id: I3a26baf8b2f945fea4f1aea156e60fa79f620f86
2013-05-23 18:27:07 -07:00
Paul Wilkins e41fd6e3e2 Fix bug in 4x4 band definition.
Also some unused data structures/references removed.

Change-Id: I295809e887173543e794250cb60ddaf1475ffd24
2013-05-23 17:51:02 -07:00
Yaowu Xu 758504991b Removed code not in use
As intra coded blocks are always decoded using decode_sb_intra(), this
commmit removed the code no longer in use.

Change-Id: I09f14fa9cdc875656e8fbe245f72c8fd83b9e31e
2013-05-23 17:46:28 -07:00
Yaowu Xu 22694ca1ad Change txfm_type decision
The changing in intra coding to base on transform block, i.e. pred->
txfm->quant->dequant-itxfm->recon, made all blocks within a prediction
unit behave consistently, there is no longer a need to handle blocks
differently based on the position within a predicitn block. So this
commit simplifies the decision of transform type to be based on
prediction mode only.

Change-Id: If96cb72386f2e9186126ace88afa35ef085b6c96
2013-05-23 17:46:28 -07:00
Jingning Han 826efc838c Fix a bug in intra4x4 level rd loop
This commit fixed a uninitialized value use in the intra 4x4/8x4/4x8
rate-distortion loop.

Change-Id: I5c25b3536b59e4f5fbb23cf85baf93b2ccec7d72
2013-05-23 17:44:33 -07:00
Johann 4d5f1955de Remove type from vmvn
datatype is optional for the instruction but clang refuses it.
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489c/CIHIJIHC.html

It is still required when using an immediate.
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489c/CIHGGEEB.html

Change-Id: I0fae956c8c0fa3f97578ce80abea247f7fc88705
2013-05-23 13:02:44 -07:00
Jingning Han ae10319520 Make comp_inter_inter support 4x4 partition coding
This commit refactors the iterative motion search for compound
inter-inter mode, to make it support all partition types including
4x4/4x8/8x4 block sizes.

Change-Id: I5f1212b0f307377291763e45c6bdc9693b5f04c8
2013-05-23 13:13:42 +01:00
Paul Wilkins 33ecd6ad54 Merge Scatter Scan experiment.
Removal from under configure flag.
A bit  renaming

Change-Id: I2213229dfe852001dfec16b149f47c52ce88f3aa
2013-05-23 13:09:27 +01: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
Dmitry Kovalev 0638bff7af Using vp9 function prefix instead of vp8 inside vp9_cx_iface.c.
Change-Id: Ia74e7cf626db46ab47a74fe003602a55b949244c
2013-05-22 18:04:08 -07:00
Yunqing Wang 0812c121e7 Merge "Optimize variance functions" into experimental 2013-05-22 13:41:04 -07:00
Deb Mukherjee ddb2309568 Merge "Using 128 entry look up table for coef models" into experimental 2013-05-22 10:38:35 -07:00