platform/upstream/libvpx.git
11 years agoSupports inter-intra prediction with superblocks
Deb Mukherjee [Fri, 30 Nov 2012 19:46:20 +0000 (11:46 -0800)]
Supports inter-intra prediction with superblocks

Adds support for compound inter-intra prediction with superblocks.
Also, fixes a bug that disabled intra modes for superblocks.

Change-Id: I4d711317e1bc19df8c2f32dc645429f7fff31036

11 years agoAdds switchable filters with superblocks
Deb Mukherjee [Fri, 30 Nov 2012 00:39:15 +0000 (16:39 -0800)]
Adds switchable filters with superblocks

Allows switchbale filters to be used without mismatch when the
superblock experiment is on.

Also removes a spurious clamping code in decodemv.c which causes
rare encode/decode mismatches.

Change-Id: I809d9ee0b2859552b613500b539a615515b863ae

11 years agowarnings in various experiments
Jim Bankoski [Fri, 30 Nov 2012 15:29:43 +0000 (07:29 -0800)]
warnings in various experiments

Change-Id: Ib5106d4772450f8026f823dd743f162ab833b1d6

11 years agogoogle style guide include guards
Jim Bankoski [Fri, 30 Nov 2012 00:36:10 +0000 (16:36 -0800)]
google style guide include guards

Change-Id: I2c252f3ddcc99e96c1f5d3dab8bcb25a2a3637ea

11 years agoMerge "Further improve macroblock loop filters" into experimental
Yunqing Wang [Fri, 30 Nov 2012 00:07:14 +0000 (16:07 -0800)]
Merge "Further improve macroblock loop filters" into experimental

11 years agoMerge "Minor refactoring of superblock decoding" into experimental
Deb Mukherjee [Thu, 29 Nov 2012 23:33:42 +0000 (15:33 -0800)]
Merge "Minor refactoring of superblock decoding" into experimental

11 years agoMinor refactoring of superblock decoding
Deb Mukherjee [Thu, 29 Nov 2012 23:26:56 +0000 (15:26 -0800)]
Minor refactoring of superblock decoding

Refactoring for improved readability - no bitstream or
performance change.

Change-Id: I4488ed4715f8dbe38c66431106478669041b8b33

11 years agoa vp8 warning to boot.
Jim Bankoski [Thu, 29 Nov 2012 22:24:54 +0000 (14:24 -0800)]
a vp8 warning to boot.

Change-Id: I32ed051c8b4d3e5afa4e13bb4e3b2ca5e922ff64

11 years agointrinsic warnings begone
Jim Bankoski [Thu, 29 Nov 2012 22:14:26 +0000 (14:14 -0800)]
intrinsic warnings begone

Change-Id: I6a224c590b6a2c5b91f9084ffb8083d18223a206

11 years agolast remaining warning
Jim Bankoski [Thu, 29 Nov 2012 22:07:21 +0000 (14:07 -0800)]
last remaining warning

Change-Id: I1f49d96cdb5e342041c9a72ef31df361a1b609eb

11 years agofix implicit warnings idct etc
Jim Bankoski [Thu, 29 Nov 2012 19:23:02 +0000 (11:23 -0800)]
fix implicit warnings idct etc

Change-Id: I54a122cc8c0b6ed2dbc3c6ecfcd44736cd40b687

11 years agoAdditional warning message cleanup.
Jim Bankoski [Thu, 29 Nov 2012 18:10:51 +0000 (10:10 -0800)]
Additional warning message cleanup.

Change-Id: I429a97ac57db3de0bf67ce3f3fe0c6b409f77a9e

11 years agoMerge changes Iaa67bcf1,Ibea3bc80 into experimental
Yaowu Xu [Thu, 29 Nov 2012 17:34:10 +0000 (09:34 -0800)]
Merge changes Iaa67bcf1,Ibea3bc80 into experimental

* changes:
  more warning cleanup
  unused variables & warnings

11 years agoMerge "more unused variables." into experimental
Yaowu Xu [Thu, 29 Nov 2012 17:33:59 +0000 (09:33 -0800)]
Merge "more unused variables." into experimental

11 years agoMerge "unused variable" into experimental
Yaowu Xu [Thu, 29 Nov 2012 17:33:52 +0000 (09:33 -0800)]
Merge "unused variable" into experimental

11 years agoMerge "unused var removed" into experimental
Yaowu Xu [Thu, 29 Nov 2012 17:33:41 +0000 (09:33 -0800)]
Merge "unused var removed" into experimental

11 years agoMerge "minor fix to eob check for setting CONTEXT" into experimental
Yaowu Xu [Thu, 29 Nov 2012 17:27:00 +0000 (09:27 -0800)]
Merge "minor fix to eob check for setting CONTEXT" into experimental

11 years agominor fix to eob check for setting CONTEXT
Yaowu Xu [Thu, 29 Nov 2012 01:34:02 +0000 (17:34 -0800)]
minor fix to eob check for setting CONTEXT

Previously, the "!=" check is logically incorrect when eob is at 0 and
effective coefficient starting position is 1. This commit should have
no effect on bitstream.

Change-Id: I6ce3a847c7e72bfbe4f7c74f88e3310c6b9b6d30

11 years agomore warning cleanup
Jim Bankoski [Thu, 29 Nov 2012 17:07:12 +0000 (09:07 -0800)]
more warning cleanup

Change-Id: Iaa67bcf1e866dfe255c4e458d4e51e9c708ffcf4

11 years agounused variables & warnings
Jim Bankoski [Thu, 29 Nov 2012 17:02:47 +0000 (09:02 -0800)]
unused variables & warnings

Change-Id: Ibea3bc80eb26a975faaa60268bbc93237f82bc57

11 years agomore unused variables.
Jim Bankoski [Thu, 29 Nov 2012 16:54:59 +0000 (08:54 -0800)]
more unused variables.

Change-Id: Ibe11e9275949b26a77fa9c8ac2e7c356ae533d5d

11 years agounused variable
Jim Bankoski [Thu, 29 Nov 2012 16:51:19 +0000 (08:51 -0800)]
unused variable

Change-Id: I1302a6eaa840d419e8bb9ad0673e42ef139d3fee

11 years agounused var removed
Jim Bankoski [Thu, 29 Nov 2012 16:50:20 +0000 (08:50 -0800)]
unused var removed

Change-Id: I9d0efdff0c79ea4bdd660098106b64776bdd4483

11 years agosigned mismatch mvrefcount
Jim Bankoski [Thu, 29 Nov 2012 16:13:18 +0000 (08:13 -0800)]
signed mismatch mvrefcount

Change-Id: Ie34820c1b6eaba9cf9316415a46f48af79c41646

11 years agowarning error missing void
Jim Bankoski [Thu, 29 Nov 2012 15:47:50 +0000 (07:47 -0800)]
warning error missing void

Change-Id: I914bcc669297d3414261486bf1bfb716c2ecc804

11 years agoihtllm moves to rtcd
Jim Bankoski [Thu, 29 Nov 2012 15:19:38 +0000 (07:19 -0800)]
ihtllm moves to rtcd

clears up some warnings

Change-Id: I9899637497c6ad7519f098e055ab98580ae6d688

11 years agofix vp9_vp8 files renamed
Jim Bankoski [Thu, 29 Nov 2012 14:53:08 +0000 (06:53 -0800)]
fix vp9_vp8 files renamed

Change-Id: I20c426e91ee49666db42e20eb074095ab6b8ec5d

11 years agomore rtcd cleanup
Jim Bankoski [Thu, 29 Nov 2012 00:47:30 +0000 (16:47 -0800)]
more rtcd cleanup

Change-Id: Ieefd76e164ca4aa87597da0412977614ddfbacb7

11 years agoMerge "Fixing 8x8/4x4 ADST for intra modes with tx select" into experimental
Deb Mukherjee [Thu, 29 Nov 2012 00:59:17 +0000 (16:59 -0800)]
Merge "Fixing 8x8/4x4 ADST for intra modes with tx select" into experimental

11 years agoFixing 8x8/4x4 ADST for intra modes with tx select
Deb Mukherjee [Thu, 15 Nov 2012 23:14:38 +0000 (15:14 -0800)]
Fixing 8x8/4x4 ADST for intra modes with tx select

This patch allows use of 8x8 and 4x4 ADST correctly for Intra
16x16 modes and Intra 8x8 modes when the block size selected
is smaller than the prediction mode. Also includes some cleanups
and refactoring.

Rebase.

Change-Id: Ie3257bdf07bdb9c6e9476915e3a80183c8fa005a

11 years agoMerge "remove the vp9_default_mode_contexts_a" into experimental
Yaowu Xu [Wed, 28 Nov 2012 21:56:42 +0000 (13:56 -0800)]
Merge "remove the vp9_default_mode_contexts_a" into experimental

11 years agoremove the vp9_default_mode_contexts_a
Yaowu Xu [Wed, 28 Nov 2012 19:07:50 +0000 (11:07 -0800)]
remove the vp9_default_mode_contexts_a

Given the way mode_context is updated, the benefit of an additional
default is not signficant.

Change-Id: I67489453e8781340b18e26a1cc2f04e9221004a2

11 years agofixed includes to be fully specified
Jim Bankoski [Wed, 28 Nov 2012 18:41:40 +0000 (10:41 -0800)]
fixed includes to be fully specified

Change-Id: Ia1cce221f8511561b9cbd8edb7726fbc286ff243

11 years agoMerge "remove postproc invokes" into experimental
Jim Bankoski [Wed, 28 Nov 2012 18:30:42 +0000 (10:30 -0800)]
Merge "remove postproc invokes" into experimental

11 years agoMerge "Clamp decoded feature data" into experimental
John Koleszar [Wed, 28 Nov 2012 18:08:37 +0000 (10:08 -0800)]
Merge "Clamp decoded feature data" into experimental

11 years agoMerge "Revert "make: flatten object file directories"" into experimental
John Koleszar [Wed, 28 Nov 2012 18:08:22 +0000 (10:08 -0800)]
Merge "Revert "make: flatten object file directories"" into experimental

11 years agoremove postproc invokes
Jim Bankoski [Wed, 28 Nov 2012 18:00:25 +0000 (10:00 -0800)]
remove postproc invokes

and some miscellaneous invoke left overs

Change-Id: I63191b1bfd3bea4ce30cceaeb686ec850570fc43

11 years agoLocalize Y2 entropy coding context
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

11 years agoFurther improve macroblock loop filters
Yunqing Wang [Wed, 28 Nov 2012 03:16:32 +0000 (19:16 -0800)]
Further improve macroblock loop filters

This change included:
1. Aligned reads in vp9_mbloop_filter_vertical_edge function.
Since we actually read 16 bytes, we can align the reads to read
starting at (s - 8) instead of (s - 5).
2. Combined u, v loop filters.
3. Added 8x16 transpose.

This gave 2% decoder performance gain (tulip clip).

Change-Id: Ib14c2f1645c4a3436df17fe2f24789506bf0bb58

11 years agoremoved redundant mode_context data structures
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

11 years agoClamp decoded feature data
John Koleszar [Tue, 27 Nov 2012 19:16:15 +0000 (11:16 -0800)]
Clamp decoded feature data

Not all segment feature data elements are full-range powers of two, so
there are values that can be encoded that are invalid. Add a new function
to clamp values to the maximum allowed.

Change-Id: Ie47cb80ef2d54292e6b8db9f699c57214a915bc4

11 years agoRevert "make: flatten object file directories"
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

11 years agoAdd vp9_ prefix to all vp9 files
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

11 years agoMerge "Improve sad3x16 SSE2 function" into experimental
Yunqing Wang [Mon, 26 Nov 2012 18:15:35 +0000 (10:15 -0800)]
Merge "Improve sad3x16 SSE2 function" into experimental

11 years agoMerge "Modified mv prediction." into experimental
Paul Wilkins [Mon, 26 Nov 2012 17:59:24 +0000 (09:59 -0800)]
Merge "Modified  mv prediction." into experimental

11 years agoModified mv prediction.
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

11 years agoImprove sad3x16 SSE2 function
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

11 years agoremove the dependency on idct.h
Yaowu Xu [Mon, 26 Nov 2012 17:10:35 +0000 (09:10 -0800)]
remove the dependency on idct.h

Change-Id: Idcf827d8ae6429ee5b673c3398f838dbeacb4e74

11 years agoMerge "removed the idct rtcd idct calls" into experimental
Jim Bankoski [Sun, 25 Nov 2012 05:38:36 +0000 (21:38 -0800)]
Merge "removed the idct rtcd idct calls" into experimental

11 years agoMove switch(tx_size) around txsize to detokenize.c.
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

11 years agoFix crash in pick_inter_mode_sb().
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

11 years agoremoved the idct rtcd idct calls
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

11 years agoRestructure vp9_decode_mb_tokens_8x8() a bit.
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

11 years agoRestructure vp9_decode_mb_tokens_16x16() a bit.
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

11 years agoMake get_eob() function static.
Ronald S. Bultje [Fri, 23 Nov 2012 16:17:06 +0000 (08:17 -0800)]
Make get_eob() function static.

Change-Id: Idde3ab97960eda7022367c1f91a873a479bc9d7b

11 years agoRename "block_type" function argument to "txfm_size".
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

11 years agoMerge "remove subpixel invoke functions" into experimental
Jim Bankoski [Thu, 22 Nov 2012 03:55:16 +0000 (19:55 -0800)]
Merge "remove subpixel invoke functions" into experimental

11 years agoFix enc/dec mismatch with b_context_pred experiment enabled.
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

11 years agoremove subpixel invoke functions
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

11 years agofixed const problem
Jim Bankoski [Wed, 21 Nov 2012 14:46:25 +0000 (06:46 -0800)]
fixed const problem

NEEDED FOR BUILD

Change-Id: I56a3e68f15dff480b34de048e30231ba821b1ee2

11 years agoMerge "clean out some of the rtcd code." into experimental
Jim Bankoski [Wed, 21 Nov 2012 14:41:37 +0000 (06:41 -0800)]
Merge "clean out some of the rtcd code." into experimental

11 years agoMerge "Pack invisible frames without lengths" into experimental
John Koleszar [Wed, 21 Nov 2012 01:22:50 +0000 (17:22 -0800)]
Merge "Pack invisible frames without lengths" into experimental

11 years agoMerge "make: fix dependency generation for flat build tree" 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

11 years agoFix ref_stride in sad function
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

11 years agomake: fix dependency generation for flat build tree
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

12 years agoclean out some of the rtcd code.
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

12 years agoMerge "Assign above/left context in decode_coefs() instead of in caller." into experi...
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

12 years agoMerge "Remove unused argument from decode_coefs() function prototype." 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

12 years agoMerge "Remove coef_bands_x[] array and related machinery in decode_coefs()." into...
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

12 years agoMerge "Inline count_tokens() 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

12 years agoMerge "Merge various count_token() functions into a single one." 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

12 years agoAssign above/left context in decode_coefs() instead of in caller.
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

12 years agoRemove unused argument from decode_coefs() function prototype.
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

12 years agoRemove coef_bands_x[] array and related machinery in decode_coefs().
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

12 years agoInline count_tokens() in decode_coefs().
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

12 years agoMerge various count_token() functions into a single one.
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

12 years agoMerge "removal of temporal invoke" into experimental
Jim Bankoski [Sat, 17 Nov 2012 17:53:02 +0000 (09:53 -0800)]
Merge "removal of temporal invoke" into experimental

12 years agoRemove unused function count_tokens() in detokenize.c.
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

12 years agoremoval of temporal invoke
Jim Bankoski [Sat, 17 Nov 2012 14:11:01 +0000 (06:11 -0800)]
removal of temporal invoke

Change-Id: I18ca713b02a5241bdb20dddcde0216467b55b596

12 years agoRemove special-case inline detokenization in b_pred reconstruction.
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

12 years agoMerge "Add const before the dequant(dq)" into experimental
Yunqing Wang [Fri, 16 Nov 2012 20:35:17 +0000 (12:35 -0800)]
Merge "Add const before the dequant(dq)" into experimental

12 years agoMerge "Optimize 8x8 dequant and idct" into experimental
Yunqing Wang [Fri, 16 Nov 2012 20:23:06 +0000 (12:23 -0800)]
Merge "Optimize 8x8 dequant and idct" into experimental

12 years agoAdd const before the dequant(dq)
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

12 years agoMerge "remove yasm.rules" into experimental
Yaowu Xu [Fri, 16 Nov 2012 19:46:58 +0000 (11:46 -0800)]
Merge "remove yasm.rules" into experimental

12 years agoremove yasm.rules
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

12 years agoSupport 32x32 intra modes in non-keyframe superblocks.
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

12 years agoFurther experimentation with the mode context
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

12 years agoMerge "Don't write recon.yuv by default" into experimental
John Koleszar [Fri, 16 Nov 2012 16:41:40 +0000 (08:41 -0800)]
Merge "Don't write recon.yuv by default" into experimental

12 years agoMerge "Compound inter-intra experiment" into experimental
Deb Mukherjee [Fri, 16 Nov 2012 16:30:34 +0000 (08:30 -0800)]
Merge "Compound inter-intra experiment" into experimental

12 years agoMerge "changed mv candidate search for superblocks" into experimental
Yaowu Xu [Fri, 16 Nov 2012 15:21:55 +0000 (07:21 -0800)]
Merge "changed mv candidate search for superblocks" into experimental

12 years agochanged mv candidate search for superblocks
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

12 years agoCompound inter-intra experiment
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

12 years agoMerge "subpelrefmv for superblocks" into experimental
Yaowu Xu [Fri, 16 Nov 2012 13:49:32 +0000 (05:49 -0800)]
Merge "subpelrefmv for superblocks" into experimental

12 years agoPack invisible frames without lengths
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

12 years agowebm: add support for V_VP9
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

12 years agosubpelrefmv for superblocks
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

12 years agochanged asm obj output filenames in MSVC build
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

12 years agosupport building vp8 and vp9 into a single lib
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

12 years agomake: flatten object file directories
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

12 years agodetokenize: use SEG_LVL_EOB feature consistently
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