John Koleszar [Wed, 28 Nov 2012 18:08:22 +0000 (10:08 -0800)]
Merge "Revert "make: flatten object file directories"" into experimental
Yaowu Xu [Wed, 28 Nov 2012 00:02:35 +0000 (16:02 -0800)]
Localize Y2 entropy coding context
This commit makes sure Y2 entropy coding context is always updated on
every macroblock even there is no Y2 block.
Change-Id: Ie307cfc46526efe55613be39f9f178d2531b56ba
Yaowu Xu [Tue, 27 Nov 2012 20:41:59 +0000 (12:41 -0800)]
removed redundant mode_context data structures
This commit removed a couple of redundant data structures in frame
coding contextsm, mode_context and mode_context_a, and changed to
use vp9_mode_contexts only. The switch of the context for different
frame type now relies on the switch of frame coding context between
lfc and lfc_a. This commit also removed a number of memcpy among
these redundant data structure.
Change-Id: I42e8174bd60f466b0860afc44c1263896471b0f3
John Koleszar [Tue, 27 Nov 2012 23:54:54 +0000 (15:54 -0800)]
Revert "make: flatten object file directories"
This reverts commit
b72373de79800e801ce730d24cb115daf78ae660.
Change-Id: Ic1601160e11df1a018ef12da25967cfb5eebd5ba
John Koleszar [Tue, 27 Nov 2012 21:59:17 +0000 (13:59 -0800)]
Add vp9_ prefix to all vp9 files
Support for gyp which doesn't support multiple objects in the same
static library having the same basename.
Change-Id: Ib947eefbaf68f8b177a796d23f875ccdfa6bc9dc
Yunqing Wang [Mon, 26 Nov 2012 18:15:35 +0000 (10:15 -0800)]
Merge "Improve sad3x16 SSE2 function" into experimental
Paul Wilkins [Mon, 26 Nov 2012 17:59:24 +0000 (09:59 -0800)]
Merge "Modified mv prediction." into experimental
Paul Wilkins [Mon, 26 Nov 2012 11:29:08 +0000 (11:29 +0000)]
Modified mv prediction.
Modified the mv_pred() fuunction that chooses a centre
point from which to start step searches to use the top
candidate vectors chosen previously.
Some gains (mainly on HD and tested with SB off).
Std_hd 0.874%, YT-hd 0.174%, YT 0.05%, Derf 0.036%
Change-Id: Ie232284f561838b8ecee0e28dcbb07a9cd46cf56
Yunqing Wang [Wed, 21 Nov 2012 00:28:08 +0000 (16:28 -0800)]
Improve sad3x16 SSE2 function
Vp9_sad3x16_sse2() is heavily called in decoder, in which the
unaligned reads consume lots of cpu cycles. When CONFIG_SUBPELREFMV
is off, the unaligned offset is 1. In this situation,
we can adjust the src_ptr to be 4-byte aligned, and then do the
aligned reads. This reduced the reading time significantly. Tests
on 1080p clip showed over 2% decoder performance gain with
CONFIG_SUBPELREFM off.
Change-Id: I953afe3ac5406107933ef49d0b695eafba9a6507
Yaowu Xu [Mon, 26 Nov 2012 17:10:35 +0000 (09:10 -0800)]
remove the dependency on idct.h
Change-Id: Idcf827d8ae6429ee5b673c3398f838dbeacb4e74
Jim Bankoski [Sun, 25 Nov 2012 05:38:36 +0000 (21:38 -0800)]
Merge "removed the idct rtcd idct calls" into experimental
Ronald S. Bultje [Fri, 23 Nov 2012 19:23:50 +0000 (11:23 -0800)]
Move switch(tx_size) around txsize to detokenize.c.
Add a new function vp9_decode_mb_tokens() that handles the switch
between different per-tx-size detokenize functions. Make actual
implementations (vp9_decode_mb_tokens_NxN()) static.
Change-Id: I9e0c4ef410bfa90128a02b472c079a955776816d
Ronald S. Bultje [Sat, 24 Nov 2012 16:19:04 +0000 (08:19 -0800)]
Fix crash in pick_inter_mode_sb().
It didn't handle rd_thresh == INT_MAX, which means the reference is
unavailable.
Change-Id: Ie6fa8b2577437411db81a8c24e8dcdfd856a0e8d
Jim Bankoski [Sun, 25 Nov 2012 03:33:58 +0000 (19:33 -0800)]
removed the idct rtcd idct calls
More cleanup to do after this, but this is a good chunk of removing rtcd.
Change-Id: I551db75e341a0a85c3ad650df1e9a60dc305681a
Ronald S. Bultje [Fri, 23 Nov 2012 17:43:13 +0000 (09:43 -0800)]
Restructure vp9_decode_mb_tokens_8x8() a bit.
Don't declare variables if they only ever have a single value and are
used only as argument to another function call; instead, just hardcode
the value in the function call directly. Split out UV and Y coefficient
loops for clarity. Use xd->block[].qcoeff instead of xd->qcoeff + magic
to remove use of magic offset variables.
Change-Id: I5b17eda1bb666c69c2b7ea957d5525cd78192e33
Ronald S. Bultje [Fri, 23 Nov 2012 17:11:12 +0000 (09:11 -0800)]
Restructure vp9_decode_mb_tokens_16x16() a bit.
Don't declare variables if they only ever have a single value and are
used only as argument to another function call; instead, just hardcode
the value in the function call directly. Also remove unneeded brackets
around a code block, and remove the magic offsets 64 and 256 for chroma
values in the coefficient memory block.
Change-Id: I14fc14120a81ea1d6fb862674e8bf8cf6ba3d114
Ronald S. Bultje [Fri, 23 Nov 2012 16:17:06 +0000 (08:17 -0800)]
Make get_eob() function static.
Change-Id: Idde3ab97960eda7022367c1f91a873a479bc9d7b
Ronald S. Bultje [Sun, 18 Nov 2012 02:32:33 +0000 (18:32 -0800)]
Rename "block_type" function argument to "txfm_size".
Also fix the type (TX_SIZE instead of int).
Change-Id: Ib9b3f33835e58a6e758ed5f37bb64543e62b6a86
Jim Bankoski [Thu, 22 Nov 2012 03:55:16 +0000 (19:55 -0800)]
Merge "remove subpixel invoke functions" into experimental
Ronald S. Bultje [Wed, 21 Nov 2012 20:39:55 +0000 (12:39 -0800)]
Fix enc/dec mismatch with b_context_pred experiment enabled.
Change-Id: I1272ae3f0fdfb7ed8eb364ef0c6dd1818d3179d7
Jim Bankoski [Wed, 21 Nov 2012 17:16:30 +0000 (09:16 -0800)]
remove subpixel invoke functions
Removed the rtcd subpixel invoke functions.
Change-Id: I8b7618bd5813333fac66b2817bdf807616e0fb33
Jim Bankoski [Wed, 21 Nov 2012 14:46:25 +0000 (06:46 -0800)]
fixed const problem
NEEDED FOR BUILD
Change-Id: I56a3e68f15dff480b34de048e30231ba821b1ee2
Jim Bankoski [Wed, 21 Nov 2012 14:41:37 +0000 (06:41 -0800)]
Merge "clean out some of the rtcd code." into experimental
John Koleszar [Wed, 21 Nov 2012 01:22:50 +0000 (17:22 -0800)]
Merge "Pack invisible frames without lengths" into experimental
John Koleszar [Wed, 21 Nov 2012 01:22:37 +0000 (17:22 -0800)]
Merge "make: fix dependency generation for flat build tree" into experimental
Yunqing Wang [Tue, 20 Nov 2012 18:01:20 +0000 (10:01 -0800)]
Fix ref_stride in sad function
Used ref_stride.
Change-Id: I31f0a3bb935520f54d11a1d87315627f162ae845
John Koleszar [Mon, 19 Nov 2012 18:45:20 +0000 (10:45 -0800)]
make: fix dependency generation for flat build tree
Update the fmt_deps function to use a new sed expression to convert the
object file name generated by the compiler into the path-transformed
name of the .o and .d files.
Prior to this patch, changing a header file would not trigger an
incremental build.
Change-Id: I07f498a1d134577b89a72e3f1143c737b31a0636
Jim Bankoski [Sun, 18 Nov 2012 20:33:18 +0000 (12:33 -0800)]
clean out some of the rtcd code.
This removes functions that are no longer needed and cleans up some warnings.
Change-Id: I292a4c3694e9c1d68ce99cea390905b198434719
Ronald S. Bultje [Sat, 17 Nov 2012 22:41:15 +0000 (14:41 -0800)]
Merge "Assign above/left context in decode_coefs() instead of in caller." into experimental
Ronald S. Bultje [Sat, 17 Nov 2012 22:41:07 +0000 (14:41 -0800)]
Merge "Remove unused argument from decode_coefs() function prototype." into experimental
Ronald S. Bultje [Sat, 17 Nov 2012 22:40:56 +0000 (14:40 -0800)]
Merge "Remove coef_bands_x[] array and related machinery in decode_coefs()." into experimental
Ronald S. Bultje [Sat, 17 Nov 2012 22:40:48 +0000 (14:40 -0800)]
Merge "Inline count_tokens() in decode_coefs()." into experimental
Ronald S. Bultje [Sat, 17 Nov 2012 22:40:41 +0000 (14:40 -0800)]
Merge "Merge various count_token() functions into a single one." into experimental
Ronald S. Bultje [Sat, 17 Nov 2012 19:22:38 +0000 (11:22 -0800)]
Assign above/left context in decode_coefs() instead of in caller.
this prevents duplicating the same line of code in each caller of
decode_coefs().
Change-Id: Id7996ad394828bf77ef3d5e03002f577c9f79609
Ronald S. Bultje [Sat, 17 Nov 2012 19:11:06 +0000 (11:11 -0800)]
Remove unused argument from decode_coefs() function prototype.
Change-Id: I8d2539ba1046012c948520ac23a1f1978be921c5
Ronald S. Bultje [Sat, 17 Nov 2012 19:07:23 +0000 (11:07 -0800)]
Remove coef_bands_x[] array and related machinery in decode_coefs().
Change-Id: I0a36d1efb3bb81a54005b10316550ec67100559e
Ronald S. Bultje [Sat, 17 Nov 2012 18:35:47 +0000 (10:35 -0800)]
Inline count_tokens() in decode_coefs().
This prevents the relatively expensive token-from-coefficient lookup
function get_token(), plus a duplicate loop..
Change-Id: Ibecd407b2a91d3593d439ec4646e43fa26d2ff91
Ronald S. Bultje [Sat, 17 Nov 2012 18:18:41 +0000 (10:18 -0800)]
Merge various count_token() functions into a single one.
Change-Id: I1970f43e2cb5f7d9744c7249099eed226f16f162
Jim Bankoski [Sat, 17 Nov 2012 17:53:02 +0000 (09:53 -0800)]
Merge "removal of temporal invoke" into experimental
Ronald S. Bultje [Sat, 17 Nov 2012 15:45:46 +0000 (07:45 -0800)]
Remove unused function count_tokens() in detokenize.c.
Change-Id: I178f250b1a4d41d5a9c1619091f5ae51cebffb10
Jim Bankoski [Sat, 17 Nov 2012 14:11:01 +0000 (06:11 -0800)]
removal of temporal invoke
Change-Id: I18ca713b02a5241bdb20dddcde0216467b55b596
Ronald S. Bultje [Sat, 17 Nov 2012 06:26:12 +0000 (22:26 -0800)]
Remove special-case inline detokenization in b_pred reconstruction.
Just like for all other block modes, b_pred tokens can be read together
before starting macroblock reconstruction. This removes special cases
for b_pred in decode_macroblock() and allows to make decode_coefs_4x4()
static in detokenize.c.
While at it, remove the redundant handling and checking of plane_type
and block_index (i) in decode_coefs_4x4(). Since the function is static,
and is called only from decode_mb_tokens_4x4(), we don't need to worry
that the arguments ever go out of sync.
Change-Id: I2d415da0b51b89d0490a6b9e24cc86363c2090f7
Yunqing Wang [Fri, 16 Nov 2012 20:35:17 +0000 (12:35 -0800)]
Merge "Add const before the dequant(dq)" into experimental
Yunqing Wang [Fri, 16 Nov 2012 20:23:06 +0000 (12:23 -0800)]
Merge "Optimize 8x8 dequant and idct" into experimental
Yunqing Wang [Fri, 16 Nov 2012 20:07:12 +0000 (12:07 -0800)]
Add const before the dequant(dq)
Modified code to use const before dq.
Change-Id: I6fa59c2ed9743ded33ad08df70e15c2fe1ae7b99
Yaowu Xu [Fri, 16 Nov 2012 19:46:58 +0000 (11:46 -0800)]
Merge "remove yasm.rules" into experimental
Yaowu Xu [Fri, 16 Nov 2012 19:09:26 +0000 (11:09 -0800)]
remove yasm.rules
As we changed the scripts to compile asm files using customized command
for each file.
Change-Id: I975713f3d0cce2238de3ee3fe44e3227385f0c64
Ronald S. Bultje [Thu, 15 Nov 2012 23:50:07 +0000 (15:50 -0800)]
Support 32x32 intra modes in non-keyframe superblocks.
Change-Id: Icf8ad313c543462e523bff89690e5daa8d49bcc0
Paul Wilkins [Fri, 16 Nov 2012 16:31:32 +0000 (16:31 +0000)]
Further experimentation with the mode context
Experiments with a larger set of contexts and some
clean up to replace magic numbers regarding the
number of contexts.
The starting values and rate of backwards adaption
are still suspect and based on a small set of tests.
Added forwards adjustment of probabilities.
The net result of adding the new context and forward
update is small compared to the old context from the
legacy find_near function. (down a little on derf but
up by a similar amount for HD)
HOWEVER.... with the new context and forward update
the impact of disabling the reverse update (which may be
necessary in some use cases to facilitate parallel decoding)
is hugely reduced.
For the old context without forward update, the impact of
turning off reverse update (Experiment was with SB off) was
Derf - 0.9, Yt -1.89, ythd -2.75 and sthd -8.35. The impact was
mainly at low data rates.
With the new context and forward update enabled the impact
for all the test sets was no more than 0.5-1% (again most at
the low end).
Change-Id: Ic751b414c8ce7f7f3ebc6f19a741d774d2b4b556
John Koleszar [Fri, 16 Nov 2012 16:41:40 +0000 (08:41 -0800)]
Merge "Don't write recon.yuv by default" into experimental
Deb Mukherjee [Fri, 16 Nov 2012 16:30:34 +0000 (08:30 -0800)]
Merge "Compound inter-intra experiment" into experimental
Yaowu Xu [Fri, 16 Nov 2012 15:21:55 +0000 (07:21 -0800)]
Merge "changed mv candidate search for superblocks" into experimental
Yaowu Xu [Fri, 16 Nov 2012 14:31:53 +0000 (06:31 -0800)]
changed mv candidate search for superblocks
added additional motion vectors at close neighborhood of a superblock
to the list of candiate motion vectors, and removed a couple that are
further away.
The change helped std-hd set about .8% (all metrics) and smaller gain
for derf set.
Change-Id: Iaa69b98614db43420ed3fd4738d0ca5587b90045
Deb Mukherjee [Wed, 7 Nov 2012 14:50:25 +0000 (06:50 -0800)]
Compound inter-intra experiment
A patch on compound inter-intra prediction.
In compound inter-intra prediction, a new predictor for
16x16 inter coded MBs are obtained by combining a single
inter predictor with a 16x16 intra predictor, in a manner
that the weight varies with distance from the top/left
boundary. The current search strategy is to combine the best
inter mode with the best intra mode obtained independently.
Results so far:
derf +0.31%
yt +0.32%
std-hd +0.35%
hd +0.42%
It is conceivable that the results would improve somewhat
with a more thorough search strategy where all intra modes
are searched given the best mv, or even a joint search for
the best mv and the best intra mode.
Change-Id: I7951f1ed0d6eb31ca32ac24d120f1585bcd8d79b
Yaowu Xu [Fri, 16 Nov 2012 13:49:32 +0000 (05:49 -0800)]
Merge "subpelrefmv for superblocks" into experimental
John Koleszar [Thu, 15 Nov 2012 20:19:07 +0000 (12:19 -0800)]
Pack invisible frames without lengths
Modify the decoder to return the ending position of the bool decoder and
use that as the starting position for the next frame.
The constant-space algorithm for parsing the appended frame lengths is
O(n^2), which is a potential DoS concern if n is unbounded. Revisit
the appended lengths for use as partition lengths when multipartition
support is added.
In addition, this allows decoding of raw streams outside of a container
without additional framing information, though it's insufficient to
be able to remux said stream into a container.
Change-Id: I71e801a9c3e37abe559a56a597635b0cbae1934b
John Koleszar [Tue, 13 Nov 2012 20:14:28 +0000 (12:14 -0800)]
webm: add support for V_VP9
Tags VP9 tracks with the V_VP9 video type when writing to .webm files,
and supports decoding both from vpxdec without specifying --codec.
Change-Id: I0ef61dee06f4db2a74032b142a4b4976c51faf6e
Yaowu Xu [Wed, 14 Nov 2012 18:32:39 +0000 (10:32 -0800)]
subpelrefmv for superblocks
duplicate code clean-up and variable name corrections
Change-Id: Ibc4703228e652ec425125de5e7bc038fa46595c5
Yaowu Xu [Thu, 15 Nov 2012 17:55:36 +0000 (09:55 -0800)]
changed asm obj output filenames in MSVC build
this commit changed the asm file compiling in MSVC to use individually
customized build command line with object filename specified for each
input file. This allows object filenames prefixed with path name, and
avoid name collision in link time
Change-Id: I996098643dcadc393af57035a04bef3877f45424
John Koleszar [Fri, 9 Nov 2012 01:09:30 +0000 (17:09 -0800)]
support building vp8 and vp9 into a single lib
Change-Id: Ib8f8a66c9fd31e508cdc9caa662192f38433aa3d
John Koleszar [Wed, 31 Oct 2012 20:13:19 +0000 (13:13 -0700)]
make: flatten object file directories
Rather than building an object file directory heirarchy matching the
source tree's layout, rename the object files so that the object
file name contains the path in the source file tree. The intent here
is to allow two files in different parts of the source tree to have
the same name and still not collide when put into an ar archive.
Change-Id: Id627737dc95ffc65b738501215f34a995148c5a2
John Koleszar [Wed, 14 Nov 2012 17:51:23 +0000 (09:51 -0800)]
detokenize: use SEG_LVL_EOB feature consistently
Update decode_coefs() to break when c >= eob, since it's possible that
c starts the loop from 1 and eob is 0. The loop won't terminate in that
case.
Add new get_eob() function to consistently clamp the eob based on the
segment level EOB and the block size. It's possible to code a segment
level EOB that's greater than the block size, and that leads to an
out of bounds access.
Change-Id: I859563b30414615cf1b30dcc2aef8a1de358c42d
pascal massimino [Thu, 15 Nov 2012 08:24:56 +0000 (00:24 -0800)]
Merge changes I63348ae3,I658ea409 into experimental
* changes:
Segment mode coding bug.
Silenced a few warnings.
Ronald S. Bultje [Thu, 15 Nov 2012 01:05:46 +0000 (17:05 -0800)]
Merge "fix costing bug in pick_uv_sb_mode." into experimental
Ronald S. Bultje [Thu, 15 Nov 2012 01:05:40 +0000 (17:05 -0800)]
Merge "Merge a few mostly-duplicate code fragments in SB/MB encoding." into experimental
Ronald S. Bultje [Wed, 14 Nov 2012 23:43:19 +0000 (15:43 -0800)]
Merge "Prevent overflow in variance32x32." into experimental
Ronald S. Bultje [Wed, 14 Nov 2012 23:03:39 +0000 (15:03 -0800)]
fix costing bug in pick_uv_sb_mode.
Change-Id: Ia24e0fddcca9125f8e41e95dbb22444dc51767c7
Ronald S. Bultje [Tue, 13 Nov 2012 23:04:02 +0000 (15:04 -0800)]
Merge a few mostly-duplicate code fragments in SB/MB encoding.
Change-Id: I8e12fbab7ec4732b6400ae3a6964749d818c90c9
Ronald S. Bultje [Wed, 14 Nov 2012 23:02:43 +0000 (15:02 -0800)]
Prevent overflow in variance32x32.
Change-Id: I478878c78ef8a770186622d987d318176827ef5f
John Koleszar [Wed, 14 Nov 2012 17:39:25 +0000 (09:39 -0800)]
Merge "SEG_LVL_MODE: don't code ref_frame if it's implicit" into experimental
Ronald S. Bultje [Wed, 14 Nov 2012 17:18:34 +0000 (09:18 -0800)]
Merge "Don't use hybrid transform (ADST) for superblocks." into experimental
Ronald S. Bultje [Tue, 13 Nov 2012 20:09:02 +0000 (12:09 -0800)]
Don't use hybrid transform (ADST) for superblocks.
This is in line with other cases where we disable ADST if prediction
size and transform size don't match. Before this patch, the RD loop
will use ADST for superblocks, but frame encoding/decoding won't.
Change-Id: I700368c632eb72b5e089c22ef25649d99d7697d0
Paul Wilkins [Wed, 14 Nov 2012 14:33:28 +0000 (14:33 +0000)]
Segment mode coding bug.
There are now more than 16 possible modes so 5
bits required for segment mode feature.
Note that it is likely that the mode feature and how it is
coded will change but for now the 4 bits was a bug.
Change-Id: I63348ae3a9cc31566a656c2dc78f09f5e1a9dcc9
Paul Wilkins [Mon, 12 Nov 2012 17:21:10 +0000 (17:21 +0000)]
Silenced a few warnings.
Silenced a few VS compiler warnings.
Change-Id: I658ea409c36c05cd11042675e2e42ccde0ef2420
John Koleszar [Tue, 13 Nov 2012 23:20:40 +0000 (15:20 -0800)]
Don't write recon.yuv by default
CONFIG_DEBUG was turning on some code to dump the reconstructed frame
to a buffer from within the decoder. Move this code to a more specific
debugging define.
Change-Id: I3ca9ea634bdbd186f2470bd644d3695ee0ab3037
John Koleszar [Tue, 13 Nov 2012 23:18:47 +0000 (15:18 -0800)]
SEG_LVL_MODE: don't code ref_frame if it's implicit
If the SEG_LVL_MODE is an intra mode, then the reference frame must be
INTRA_FRAME.
Change-Id: I2cdeeac3780c077c74b39ce89a528bc280674231
Yaowu Xu [Tue, 13 Nov 2012 22:45:53 +0000 (14:45 -0800)]
fix a few typos
Change-Id: I7b6f27826052eb706fc6080d4e3a940dff7d3a58
Ronald S. Bultje [Tue, 13 Nov 2012 22:12:58 +0000 (14:12 -0800)]
Merge "Use full 32-pixel edge for superblock bestrefmv motion vector ordering." into experimental
Ronald S. Bultje [Tue, 13 Nov 2012 22:12:48 +0000 (14:12 -0800)]
Merge "Fix edge MV handling in SBs." into experimental
Deb Mukherjee [Fri, 9 Nov 2012 18:52:08 +0000 (10:52 -0800)]
A fix in MV_REF experiment
This fix ensures that the forward prob update is not turned off for
motion vectors.
Change-Id: I0b63c9401155926763c6294df6cca68b32bac340
Yunqing Wang [Sat, 10 Nov 2012 01:50:13 +0000 (17:50 -0800)]
Optimize 8x8 dequant and idct
Similar to 16x16 dequant and idct, based on the value of eobs, the
8x8 dequant and idct calculation was simplified to improve decorder
performance.
Combined vp9_dequant_idct_add_8x8 and vp9_dequant_dc_idct_add_8x8
to eliminate duplicate code.
Change-Id: Ia58e50ab27f7012b7379c495837c9c0b5ba9cf7f
Ronald S. Bultje [Tue, 13 Nov 2012 00:18:35 +0000 (16:18 -0800)]
Use full 32-pixel edge for superblock bestrefmv motion vector ordering.
Change-Id: I417e39867c020a17d85370972446a8ce2bbe9a6d
Ronald S. Bultje [Mon, 12 Nov 2012 23:43:11 +0000 (15:43 -0800)]
Fix edge MV handling in SBs.
Change-Id: Ia1eddb108ec463835e9de8769572d698e21bca49
Paul Wilkins [Mon, 12 Nov 2012 17:24:14 +0000 (09:24 -0800)]
Merge "New inter mode context" into experimental
Ronald S. Bultje [Mon, 12 Nov 2012 16:35:14 +0000 (08:35 -0800)]
Merge "Fix frame number on which the mismatch is reported in vpxenc." into experimental
Paul Wilkins [Mon, 12 Nov 2012 15:09:25 +0000 (15:09 +0000)]
New inter mode context
This change is a fix / extension of the newbestrefmv
experiment. As such it is presented without IFDEF.
The change creates a new context for coding inter modes
in vp9_find_mv_refs(). This replaces the context that
was previously calculated in vp9_find_near_mvs().
The new context is unoptimized and not necessarily
any better at this stage (results pending), but eliminates
the need for a legacy call to vp9_find_near_mvs().
Based on numbers from Scott, this could help decode
speed by several %.
In a later patch I will add support for forward update of
context (assuming this helps) and refine the context as
necessary.
Change-Id: I1cd991b82c8df86cc02237a34185e6d67510698a
Ronald S. Bultje [Mon, 12 Nov 2012 15:40:54 +0000 (07:40 -0800)]
Merge "Fix data type for eobs[] array in SB 4x4 IDCT code." into experimental
Ronald S. Bultje [Mon, 12 Nov 2012 15:22:22 +0000 (07:22 -0800)]
Merge "Remove 'thismb' data pointer when superblock experiment is on." into experimental
Paul Wilkins [Mon, 5 Nov 2012 12:32:49 +0000 (12:32 +0000)]
Restrict ref mv search range.
Experiment to test speed trade off of reducing the
extent of the ref mv search.
Reducing the maximum number of tested candidates to 9 had
minimal net effect on quality in any of the tests sets.
Reduction to 7 has a small negative impact (worst was STD-HD
at about -0.2%).
This change is in response to the apparently high number of
decode cycles reported in regard to mv-ref selection.
Change-Id: I0e92e92e324337689358495a1ec9ccdeb23dc774
Ronald S. Bultje [Sun, 11 Nov 2012 00:22:49 +0000 (16:22 -0800)]
Fix frame number on which the mismatch is reported in vpxenc.
Change-Id: I962be949845f881df551d101708e6ba9d8a3d6a2
Ronald S. Bultje [Sat, 10 Nov 2012 20:08:27 +0000 (12:08 -0800)]
Fix data type for eobs[] array in SB 4x4 IDCT code.
This fixes encoder/decoder mismatches with the superblock experiment
turned on whenever a superblock is encoded using the 4x4 transform.
Change-Id: Iefec7055e8d25f8efdbba66c4261bbd322d335a3
Ronald S. Bultje [Sat, 10 Nov 2012 16:39:51 +0000 (08:39 -0800)]
Remove 'thismb' data pointer when superblock experiment is on.
This should prevent inconsistent results between identical encodes with
the superblock experiment turned on.
Change-Id: I41a005fae53f2eb59736cc70041185fb7d63cfca
Deb Mukherjee [Tue, 9 Oct 2012 20:19:15 +0000 (13:19 -0700)]
New b-intra mode where direction is contextual
Preliminary patch on a new 4x4 intra mode B_CONTEXT_PRED where the
dominant direction from the context is used to encode. Various decoder
changes are needed to support decoding of B_CONTEXT_PRED in conjunction
with hybrid transforms since the scan order and tokenization depends on
the actual direction of prediction obtained from the context. Currently
the traditional directional modes are used in conjunction with the
B_CONTEXT_PRED, which also seems to provide the best results.
The gains are small - in the 0.1% range.
Change-Id: I5a7ea80b5218f42a9c0dfb42d3f79a68c7f0cdc2
Deb Mukherjee [Fri, 9 Nov 2012 20:48:35 +0000 (12:48 -0800)]
Build fix in decoder/decodframe.c
Missing eobs agrument in vp9_dequant_idct_add_16x16_c
Change-Id: I826b1afa0a4ee6398f7373325aa0c75e6a866937
John Koleszar [Fri, 9 Nov 2012 20:31:37 +0000 (12:31 -0800)]
Merge "Packing Altref along with succeeding frame and length encoding frames" into experimental
Vignesh Venkatasubramanian [Mon, 29 Oct 2012 22:57:44 +0000 (15:57 -0700)]
Packing Altref along with succeeding frame and length encoding frames
The altref frame is packed along with the next P frame. So that
outside of the codec there are now only two types of frames P and I.
Also, now it is one frame in and one frame out with respect to the
codec. Apart from that, all the frames are length encoded with the
length of each frame appended to the frame itself. There are
two categories of frames and each of them will look as follows:
- Packed frames (an altref along with the succeeding p frame)
- altref_frame_data | altref_lenngth | frame_data | length
- Unpacked frames (all frames other than the above)
- frame_data | length
Change-Id: If1eabf5c473f7d46b3f2d026bd30c803588c5330
Ronald S. Bultje [Fri, 9 Nov 2012 17:14:06 +0000 (09:14 -0800)]
Merge "Fix another crash in vpxenc with --pass=1 and --test-decode." into experimental
Ronald S. Bultje [Fri, 9 Nov 2012 17:07:50 +0000 (09:07 -0800)]
Fix another crash in vpxenc with --pass=1 and --test-decode.
Change-Id: Id23917ce2555519d2e9172dd6ce3a283f2235d26
Yunqing Wang [Fri, 9 Nov 2012 16:30:53 +0000 (08:30 -0800)]
Merge "Optimize 16x16 dequant and idct" into experimental
Yaowu Xu [Fri, 9 Nov 2012 00:30:53 +0000 (16:30 -0800)]
Merge changes I18407622,I34057b87 into experimental
* changes:
fix a crash in 2-pass encoding with test-decode on
enable build on windows with msvc