Jim Bankoski [Thu, 30 May 2013 22:13:08 +0000 (15:13 -0700)]
Creates a new speed 1:
This speed 1 - uses variance threshold stolen from static-thresh
to determine split. Any superblock with greater than the variance
set by static thresh * quantizer index squared is split. In addition
transform size is set to largest size less than or equal to partition
size, sub pixel filter is set to normal, and only 12 modes are used
at all.
Ronald S. Bultje [Thu, 30 May 2013 19:49:38 +0000 (12:49 -0700)]
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.
Ronald S. Bultje [Thu, 30 May 2013 18:27:40 +0000 (11:27 -0700)]
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.
Yaowu Xu [Thu, 30 May 2013 21:24:12 +0000 (14:24 -0700)]
Changed to use a new variant of WHT
The commit changed to use a new variant of Walsh-Hadamard Transform
by Tim Terriberry. This new variant has the best compression among a
number of variants that developed by Tim.
Adrian Grange [Thu, 30 May 2013 00:16:00 +0000 (17:16 -0700)]
Add intra_only and reset_frame_context flags
Added two flags to the frame header:
intra_only:
Signals that the frame is encoded using only INTRA
coding modes.
reset_frame_context:
Indicates that the coding context specified
in the frame header should be reset to default values before the
frame is encoded/decoded.
Deb Mukherjee [Wed, 8 May 2013 17:04:14 +0000 (10:04 -0700)]
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.
Sami Pietila [Thu, 23 May 2013 10:08:00 +0000 (13:08 +0300)]
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.
Dmitry Kovalev [Wed, 29 May 2013 01:07:54 +0000 (18:07 -0700)]
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.
Jingning Han [Tue, 28 May 2013 21:02:29 +0000 (14:02 -0700)]
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.
Yaowu Xu [Fri, 24 May 2013 23:13:54 +0000 (16:13 -0700)]
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
Jingning Han [Mon, 27 May 2013 14:55:25 +0000 (07:55 -0700)]
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.
Sami Pietila [Mon, 27 May 2013 07:14:53 +0000 (10:14 +0300)]
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.
Yaowu Xu [Wed, 22 May 2013 17:37:40 +0000 (10:37 -0700)]
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.
Jingning Han [Thu, 23 May 2013 04:09:28 +0000 (21:09 -0700)]
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.
Jingning Han [Wed, 22 May 2013 04:28:42 +0000 (21:28 -0700)]
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.
Yaowu Xu [Fri, 17 May 2013 19:50:40 +0000 (12:50 -0700)]
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.