]> granicus.if.org Git - libvpx/log
libvpx
11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 years agoMerge changes I63348ae3,I658ea409 into experimental
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.

11 years agoMerge "fix costing bug in pick_uv_sb_mode." into experimental
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

11 years agoMerge "Merge a few mostly-duplicate code fragments in SB/MB encoding." 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

11 years agoMerge "Prevent overflow in variance32x32." into experimental
Ronald S. Bultje [Wed, 14 Nov 2012 23:43:19 +0000 (15:43 -0800)]
Merge "Prevent overflow in variance32x32." into experimental

11 years agofix costing bug in pick_uv_sb_mode.
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

11 years agoMerge a few mostly-duplicate code fragments in SB/MB encoding.
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

11 years agoPrevent overflow in variance32x32.
Ronald S. Bultje [Wed, 14 Nov 2012 23:02:43 +0000 (15:02 -0800)]
Prevent overflow in variance32x32.

Change-Id: I478878c78ef8a770186622d987d318176827ef5f

11 years agoMerge "SEG_LVL_MODE: don't code ref_frame if it's implicit" into experimental
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

11 years agoMerge "Don't use hybrid transform (ADST) for superblocks." 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

11 years agoDon't use hybrid transform (ADST) for superblocks.
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

11 years agoSegment mode coding bug.
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

11 years agoSilenced a few warnings.
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

11 years agoDon't write recon.yuv by default
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

11 years agoSEG_LVL_MODE: don't code ref_frame if it's implicit
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

11 years agofix a few typos
Yaowu Xu [Tue, 13 Nov 2012 22:45:53 +0000 (14:45 -0800)]
fix a few typos

Change-Id: I7b6f27826052eb706fc6080d4e3a940dff7d3a58

11 years agoMerge "Use full 32-pixel edge for superblock bestrefmv motion vector ordering." into...
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

11 years agoMerge "Fix edge MV handling in SBs." 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

11 years agoA fix in MV_REF experiment
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

11 years agoOptimize 8x8 dequant and idct
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

11 years agoUse full 32-pixel edge for superblock bestrefmv motion vector ordering.
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

11 years agoFix edge MV handling in SBs.
Ronald S. Bultje [Mon, 12 Nov 2012 23:43:11 +0000 (15:43 -0800)]
Fix edge MV handling in SBs.

Change-Id: Ia1eddb108ec463835e9de8769572d698e21bca49

11 years agoMerge "New inter mode context" into experimental
Paul Wilkins [Mon, 12 Nov 2012 17:24:14 +0000 (09:24 -0800)]
Merge "New inter mode context" into experimental

11 years agoMerge "Fix frame number on which the mismatch is reported in vpxenc." 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

11 years agoNew inter mode context
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

11 years agoMerge "Fix data type for eobs[] array in SB 4x4 IDCT code." into experimental
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

11 years agoMerge "Remove 'thismb' data pointer when superblock experiment is on." 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

11 years agoRestrict ref mv search range.
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

11 years agoFix frame number on which the mismatch is reported in vpxenc.
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

11 years agoFix data type for eobs[] array in SB 4x4 IDCT code.
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

11 years agoRemove 'thismb' data pointer when superblock experiment is on.
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

11 years agoNew b-intra mode where direction is contextual
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

11 years agoBuild fix in decoder/decodframe.c
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

11 years agoMerge "Packing Altref along with succeeding frame and length encoding frames" into...
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

11 years agoPacking Altref along with succeeding frame and length encoding frames
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

11 years agoMerge "Fix another crash in vpxenc with --pass=1 and --test-decode." into experimental
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

11 years agoFix another crash in vpxenc with --pass=1 and --test-decode.
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

11 years agoMerge "Optimize 16x16 dequant and idct" into experimental
Yunqing Wang [Fri, 9 Nov 2012 16:30:53 +0000 (08:30 -0800)]
Merge "Optimize 16x16 dequant and idct" into experimental

11 years agoMerge changes I18407622,I34057b87 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

11 years agofix a crash in 2-pass encoding with test-decode on
Yaowu Xu [Fri, 9 Nov 2012 00:22:54 +0000 (16:22 -0800)]
fix a crash in 2-pass encoding with test-decode on

only call decoding when encoder produce compressed data

Change-Id: I1840762246afaaad76db6c6d29032ad15aa38afd

11 years agoenable build on windows with msvc
Yaowu Xu [Thu, 8 Nov 2012 23:56:27 +0000 (15:56 -0800)]
enable build on windows with msvc

Change-Id: I34057b87d9713dc819b8c69990dd1408b8c79342

11 years agoMerge "remove macros obfuscating mv costing" into experimental
Jim Bankoski [Thu, 8 Nov 2012 23:51:21 +0000 (15:51 -0800)]
Merge "remove macros obfuscating mv costing" into experimental

11 years agoremove macros obfuscating mv costing
Jim Bankoski [Thu, 8 Nov 2012 23:44:39 +0000 (15:44 -0800)]
remove macros obfuscating mv costing

cleanup

Change-Id: I565eee40d900e0441ad211b65ac829fc5b93d94a

11 years agoImplement tx_select for superblock encoding.
Ronald S. Bultje [Thu, 8 Nov 2012 19:03:00 +0000 (11:03 -0800)]
Implement tx_select for superblock encoding.

Also split superblock handling code out of decode_macroblock() into
a new function decode_superblock(), for easier readability.

Derf +0.05%, HD +0.2%, STDHD +0.1%. We can likely get further gains
by allowing to select mb_skip_coeff for a subset of the complete SB
or something along those lines, because although this change allows
coding smaller transforms for bigger predictors, it increases the
overhead of coding EOBs to skip the parts where the residual is
near-zero, and thus the overall gain is not as high as we'd expect.

Change-Id: I552ce1286487267f504e3090b683e15515791efa

11 years agoOptimize 16x16 dequant and idct
Yunqing Wang [Wed, 7 Nov 2012 00:06:22 +0000 (16:06 -0800)]
Optimize 16x16 dequant and idct

As suggested by Yaowu, simplified 16x16 dequant and idct. In decoder,
after detoken step, we know the number of non-zero dct coefficients
(eobs) in a macroblock. Idct calculation can be skipped or simplified
based on eobs, which improves the decoder performance.

Change-Id: I9ffa1cb134bcb5a7d64fcf90c81871a96d1b4018

11 years agoMerge with upstream experimental changes (2)
John Koleszar [Wed, 7 Nov 2012 22:32:26 +0000 (14:32 -0800)]
Merge with upstream experimental changes (2)

Include upstream changes (variance fixes) into the merged code base.

Change-Id: I4182654c1411c1b15cd23235d3822702613abce1

11 years agoMerge "Fix variance (signed integer) overflow" into experimental
James Zern [Wed, 7 Nov 2012 20:49:36 +0000 (12:49 -0800)]
Merge "Fix variance (signed integer) overflow" into experimental

11 years agoMerge with upstream experimental changes
John Koleszar [Wed, 7 Nov 2012 18:40:37 +0000 (10:40 -0800)]
Merge with upstream experimental changes

Include upstream changes (unit test fixes, in particular) into the
merged code base.

Change-Id: I096f8a9d09e2532fbec0c95d7a995ab22fa54b29

11 years agoRough merge of master into experimental
John Koleszar [Wed, 7 Nov 2012 00:59:01 +0000 (16:59 -0800)]
Rough merge of master into experimental

Creates a merge between the master and experimental branches. Fixes a
number of conflicts in the build system to allow *either* VP8 or VP9
to be built. Specifically either:

  $ configure --disable-vp9 $ configure --disable-vp8
  --disable-unit-tests

VP9 still exports its symbols and files as VP8, so that will be
resolved in the next commit.

Unit tests are broken in VP9, but this isn't a new issue. They are
fixed upstream on origin/experimental as of this writing, but rebasing
this merge proved difficult, so will tackle that in a second merge
commit.

Change-Id: I2b7d852c18efd58d1ebc621b8041fe0260442c21

11 years agomerge full pixel refmv experiment
Yaowu Xu [Wed, 7 Nov 2012 18:41:04 +0000 (10:41 -0800)]
merge full pixel refmv experiment

Change-Id: Ib39ad47a7d188f3b45416937b7eeb28c3e79b74c

11 years agoFix variance (signed integer) overflow
James Zern [Wed, 7 Nov 2012 00:58:11 +0000 (16:58 -0800)]
Fix variance (signed integer) overflow

In the variance calculations the difference is summed and later squared.
When the sum exceeds sqrt(2^31) the value is treated as a negative when
it is shifted which gives incorrect results.

To fix this we force the multiplication to be unsigned.

The alternative fix is to shift sum down by 4 before multiplying.
However that will reduce precision.

For 16x16 blocks the maximum sum is 65280 and sqrt(2^31) is 46340 (and
change).

This change is based on:
1698234 Missed some variance casts
fea3556 Fix variance overflow

Change-Id: I2c61856cca9db54b9b81de83b4505ea81a050a0f

11 years agofixed function prototype
Yaowu Xu [Tue, 6 Nov 2012 23:17:20 +0000 (15:17 -0800)]
fixed function prototype

so they are consistent with actual definitions of the functions

Change-Id: Ie4b4e81b3da3e288fc2edbbd2b393a5c54d2556b

11 years agogroup refmv experiment related functions
Yaowu Xu [Tue, 6 Nov 2012 23:17:20 +0000 (15:17 -0800)]
group refmv experiment related functions

Change-Id: Iedaa108ddb65f54d768424f9c47ad4d069b656fd

12 years agoMerge "fix test builds" into experimental
James Zern [Tue, 6 Nov 2012 20:18:01 +0000 (12:18 -0800)]
Merge "fix test builds" into experimental

12 years agofix test builds
James Zern [Tue, 6 Nov 2012 02:13:04 +0000 (18:13 -0800)]
fix test builds

s/([vV][pP])8/$19/
additionally dct.h was removed; declare the _c functions that are used
in the tests. the TODO for conversion to parameterized tests still
remains.

Change-Id: I73db9425a57075bbb78a92693ba6b320578981cd

12 years agoMerge other top-level C code
John Koleszar [Tue, 6 Nov 2012 20:08:05 +0000 (12:08 -0800)]
Merge other top-level C code

Change-Id: I0ff77f51595599cc3de5183c6c655fd261e3d925

12 years agovpxenc: merge with master
John Koleszar [Tue, 6 Nov 2012 20:02:42 +0000 (12:02 -0800)]
vpxenc: merge with master

Change-Id: Ic3e3559384a0e72abdc9b66a19865474c2a41b38

12 years agovpxdec: merge with master
John Koleszar [Tue, 6 Nov 2012 18:09:36 +0000 (10:09 -0800)]
vpxdec: merge with master

Change-Id: I69fd876dd51eb2b4a4a449faa5922225e9508b42

12 years agovpx: merge with master
John Koleszar [Mon, 5 Nov 2012 20:37:14 +0000 (12:37 -0800)]
vpx: merge with master

Change-Id: I44b3ad780cef6f448fa17ff8e28fea87ef9cd518

12 years agoConvert 16x16 dct/idct to integer forms
Yunqing Wang [Thu, 1 Nov 2012 16:04:28 +0000 (09:04 -0700)]
Convert 16x16 dct/idct to integer forms

Converted vp9_short_fdct16x16_c and vp9_short_idct16x16_c to
integer versions.

Change-Id: Ie3ec985a890ac0f4f4f5818e6f0122e00c8af69f

12 years agovp9/encoder/bitstream.c: fix unused variable warnings
James Zern [Tue, 6 Nov 2012 02:09:07 +0000 (18:09 -0800)]
vp9/encoder/bitstream.c: fix unused variable warnings

Change-Id: Ibfac7e000509d2017eac9a108060e534a19fec33

12 years agoMerge "silent a lot of MSVC compiler warnings" into experimental
Yaowu Xu [Tue, 6 Nov 2012 17:39:47 +0000 (09:39 -0800)]
Merge "silent a lot of MSVC compiler warnings" into experimental

12 years agosilent a lot of MSVC compiler warnings
Yaowu Xu [Mon, 5 Nov 2012 22:22:59 +0000 (14:22 -0800)]
silent a lot of MSVC compiler warnings

there are still a couple type of warning left, which are related to
double constants assigned to float type. As those would be addressed
by the conversion of transforms into integer version. This commit
has left those un-dealt with.

Change-Id: I48fd9b489c0c27ad6b543f4177423419f929f2bb

12 years agoAdd option to disable documentation
Johann [Wed, 10 Oct 2012 16:16:37 +0000 (09:16 -0700)]
Add option to disable documentation

Documentation is typically auto-detected by checking for php and
doxygen. Add an option to explicitly disable it.

Remove toggle keywords from libraries, examples, documentation and
unit tests. They were not consistent with the default status.

Change-Id: I21049675ccfd8e58ac612cd058641b197db5c0eb

12 years agoMerge "remove invoke_search macro" into experimental
Jim Bankoski [Tue, 6 Nov 2012 14:31:52 +0000 (06:31 -0800)]
Merge "remove invoke_search macro" into experimental

12 years agord_pick_inter_mode: prevent signed integer overflow
James Zern [Tue, 6 Nov 2012 01:14:32 +0000 (17:14 -0800)]
rd_pick_inter_mode: prevent signed integer overflow

calculate the txfm_cache difference first as both values may be
INT64_MAX with the intent that they cancel each other out.

Change-Id: I214d072458e1b24f60289974e6302af1aff7b66c

12 years agoremove invoke_search macro
Jim Bankoski [Tue, 6 Nov 2012 00:58:03 +0000 (16:58 -0800)]
remove invoke_search macro

Removed invoke search from encoder

Change-Id: I3d809b795abe6df0e71366edfe94026aaede14fb

12 years agordopt: fix use of uninitialized value in addition
James Zern [Mon, 5 Nov 2012 20:50:16 +0000 (12:50 -0800)]
rdopt: fix use of uninitialized value in addition

rd_pick_intra4x4mby_modes / rd_pick_intra8x8mby_modes would both use the
input value of 'rate_y' in the return calculation. In many places this
value is uninitialized. Remove the unneeded sum.

Change-Id: Icbd3df685303000301e69291c0ebc06f74bd548d

12 years agovpx_ports: merge with master
John Koleszar [Fri, 2 Nov 2012 22:39:14 +0000 (15:39 -0700)]
vpx_ports: merge with master

Change-Id: I25c067326153455abe1a79f8f44f70b87350e655

12 years agobuild: merge with master
John Koleszar [Fri, 2 Nov 2012 22:17:36 +0000 (15:17 -0700)]
build: merge with master

Change-Id: I8ea836ce92c1c96f1e2bdf45e704d36ec9dbc401

12 years agoMerge "Build / make problem" into experimental
Yaowu Xu [Mon, 5 Nov 2012 19:55:44 +0000 (11:55 -0800)]
Merge "Build / make problem" into experimental

12 years agoMerge "Don't generate residual 3x when doing a macroblock luma RD estimate." into...
Ronald S. Bultje [Mon, 5 Nov 2012 14:21:03 +0000 (06:21 -0800)]
Merge "Don't generate residual 3x when doing a macroblock luma RD estimate." into experimental

12 years agoBuild / make problem
Paul Wilkins [Mon, 5 Nov 2012 11:32:15 +0000 (11:32 +0000)]
Build / make problem

yv12extend_generic.h target not found.

Change-Id: I8b5c9280c92573e5c1917ba4e18a99a6ce7dcb65

12 years agoloopfilter: prevent signed integer overflow
James Zern [Sat, 3 Nov 2012 01:59:52 +0000 (18:59 -0700)]
loopfilter: prevent signed integer overflow

use unsigned ints to extended filter values in
vp9_mbloop_filter_horizontal_edge_c_sse2

Change-Id: I55ec3ac2bcb9baf55626b0384d151b07fc8e087d

12 years agoMerge "Fix eobs data type" into experimental
Yunqing Wang [Fri, 2 Nov 2012 23:00:56 +0000 (16:00 -0700)]
Merge "Fix eobs data type" into experimental

12 years agoFix eobs data type
Yunqing Wang [Fri, 2 Nov 2012 20:06:51 +0000 (13:06 -0700)]
Fix eobs data type

The block sizes for decoding tokens are up to 16x16, which means
eobs is within [0, 256]. Using (signed) char is not enough. Changed
eobs data type to unsigned short to fix the problem.

Change-Id: I88a7d3098e1f1604c336d6adb88ffec971fb03a6

12 years agoDon't generate residual 3x when doing a macroblock luma RD estimate.
Ronald S. Bultje [Fri, 2 Nov 2012 18:46:57 +0000 (11:46 -0700)]
Don't generate residual 3x when doing a macroblock luma RD estimate.

Change-Id: Ia601e96fcb4fc547884b6ab894f9f2ad22a98078

12 years agoPlace non-static function prototypes in a header file.
Ronald S. Bultje [Fri, 2 Nov 2012 18:22:57 +0000 (11:22 -0700)]
Place non-static function prototypes in a header file.

Change-Id: I7cd21b9f1e69f4e0b3338bfe27b3c67e4b47de58