Deb Mukherjee [Thu, 13 Dec 2012 19:04:56 +0000 (11:04 -0800)]
Merge "Further improvements on the hybrid dwt/dct expt" into experimental
Deb Mukherjee [Wed, 12 Dec 2012 01:06:35 +0000 (17:06 -0800)]
Further improvements on the hybrid dwt/dct expt
Modifies the scanning pattern and uses a floating point 16x16
dct implementation for now to handle scaling better.
Also experiments are in progress with 2/6 and 9/7 wavelets.
Results have improved to within ~0.25% of 32x32 dct for std-hd
and about 0.03% for derf. This difference can probably be bridged by
re-optimizing the entropy stats for these transforms. Currently
the stats used are common between 32x32 dct and dwt/dct.
Experiments are in progress with various scan pattern - wavelet
combinations.
Ideally the subbands should be tokenized separately, and an
experiment will be condcuted next on that.
Change-Id: Ia9cbfc2d63cb7a47e562b2cd9341caf962bcc110
Ronald S. Bultje [Thu, 13 Dec 2012 17:56:50 +0000 (09:56 -0800)]
Merge "New default coefficient/band probabilities." into experimental
Ronald S. Bultje [Wed, 12 Dec 2012 18:25:58 +0000 (10:25 -0800)]
New default coefficient/band probabilities.
Gives 0.5-0.6% improvement on derf and stdhd, and 1.1% on hd. The
old tables basically derive from times that we had only 4x4 or
only 4x4 and 8x8 DCTs.
Note that some values are filled with 128, because e.g. ADST ever
only occurs as Y-with-DC, as does 32x32; 16x16 ever only occurs
as Y-with-DC or as UV (as complement of 32x32 Y); and 8x8 Y2 ever
only has 4 coefficients max. If preferred, I can add values of
other tables in their place (e.g. use 4x4 2nd order high-frequency
probabilities for 8x8 2nd order), so that they make at least some
sense if we ever implement a larger 2nd order transform for the
8x8 DCT (etc.), please let me know
Change-Id: I917db356f2aff8865f528eb873c56ef43aa5ce22
Ronald S. Bultje [Wed, 12 Dec 2012 18:34:14 +0000 (10:34 -0800)]
Merge "Consistently use get_prob(), clip_prob() and newly added clip_pixel()." into experimental
Ronald S. Bultje [Mon, 10 Dec 2012 20:09:07 +0000 (12:09 -0800)]
Consistently use get_prob(), clip_prob() and newly added clip_pixel().
Add a function clip_pixel() to clip a pixel value to the [0,255] range
of allowed values, and use this where-ever appropriate (e.g. prediction,
reconstruction). Likewise, consistently use the recently added function
clip_prob(), which calculates a binary probability in the [1,255] range.
If possible, try to use get_prob() or its sister get_binary_prob() to
calculate binary probabilities, for consistency.
Since in some places, this means that binary probability calculations
are changed (we use {255,256}*count0/(total) in a range of places,
and all of these are now changed to use 256*count0+(total>>1)/total),
this changes the encoding result, so this patch warrants some extensive
testing.
Change-Id: Ibeeff8d886496839b8e0c0ace9ccc552351f7628
Yaowu Xu [Tue, 11 Dec 2012 21:51:56 +0000 (13:51 -0800)]
Merge "clean up tokenize_b() and stuff_b()" into experimental
Yaowu Xu [Thu, 6 Dec 2012 20:40:57 +0000 (12:40 -0800)]
clean up tokenize_b() and stuff_b()
Change-Id: I0c1be01aae933243311ad321b6c456adaec1a0f5
Yaowu Xu [Tue, 11 Dec 2012 17:46:36 +0000 (09:46 -0800)]
Merge "experiment with CONTEXT conversion" into experimental
Deb Mukherjee [Mon, 10 Dec 2012 20:28:06 +0000 (12:28 -0800)]
Merge "A bug fix related to switchable filters" into experimental
Deb Mukherjee [Mon, 10 Dec 2012 20:10:36 +0000 (12:10 -0800)]
A bug fix related to switchable filters
The switchable count update was mistakenly inside a macro.
Change-Id: Iec04c52ad57034b88312dbaf05eee1f47ce265b3
Paul Wilkins [Wed, 5 Dec 2012 16:23:38 +0000 (16:23 +0000)]
Further changes to mv reference code.
Some further changes and refactoring of mv
reference code and selection of center point for
searches. Mainly relates to not passing so many
different local copies of things around.
Some place holder comments.
Change-Id: I309f10ffe9a9cde7663e7eae19eb594371c8d055
John Koleszar [Sat, 8 Dec 2012 01:26:31 +0000 (17:26 -0800)]
Merge remote-tracking branch 'origin/vp9-preview' into experimental
Yaowu Xu [Wed, 28 Nov 2012 23:15:51 +0000 (15:15 -0800)]
experiment with CONTEXT conversion
This commit changed the ENTROPY_CONTEXT conversion between MBs that
have different transform sizes.
In additioin, this commit also did a number of cleanup/bug fix:
1. removed duplicate function vp9_fix_contexts() and changed to use
vp8_reset_mb_token_contexts() for both encoder and decoder
2. fixed a bug in stuff_mb_16x16 where wrong context was used for
the UV.
3. changed reset all context to 0 if a MB is skipped to simplify the
logic.
Change-Id: I7bc57a5fb6dbf1f85eac1543daaeb3a61633275c
John Koleszar [Thu, 6 Dec 2012 21:56:25 +0000 (13:56 -0800)]
libvpx_test: ensure rtcd init functions are called
In addition to allowing tests to use the RTCD-enabled functions (perhaps transitively)
without having run a full encode/decode test yet, this fixes a linking issue with
Apple's G++ whereby the Common symbols (the function pointers themselves) wouldn't
be resolved. Fixing this linking issue is the primary impetus for this patch, as none
of the tests exercise the RTCD functionality except through the main API.
Change-Id: I12aed91ca37a707e5309aa6cb9c38a649c06bc6a
Jim Bankoski [Sat, 8 Dec 2012 01:16:01 +0000 (17:16 -0800)]
Merge "Fix implicit cast." into vp9-preview
Jim Bankoski [Sat, 8 Dec 2012 01:15:52 +0000 (17:15 -0800)]
Merge "Fix meaninglesss if." into vp9-preview
Ronald S. Bultje [Sat, 8 Dec 2012 00:26:25 +0000 (16:26 -0800)]
Clean up 4x4 coefficient decoding code.
Don't use vp9_decode_coefs_4x4() for 2nd order DC or luma blocks. The
code introduces some overhead which is unnecessary for these cases.
Also, remove variable declarations that are only used once, remove
magic offsets into the coefficient buffer (use xd->block[i].qcoeff
instead of xd->qcoeff + magic_offset), and fix a few Google Style
Guide violations.
Change-Id: I0ae653fd80ca7f1e4bccd87ecef95ddfff8f28b4
Ronald S. Bultje [Sat, 8 Dec 2012 00:09:59 +0000 (16:09 -0800)]
Introduce vp9_coeff_probs/counts/stats/accum types.
Use these, instead of the 4/5-dimensional arrays, to hold statistics,
counts, accumulations and probabilities for coefficient tokens. This
commit also re-allows ENTROPY_STATS to compile.
Change-Id: If441ffac936f52a3af91d8f2922ea8a0ceabdaa5
Frank Galligan [Fri, 7 Dec 2012 23:20:39 +0000 (15:20 -0800)]
Fix meaninglesss if.
Change-Id: I0cb06d77805246fe39d39ad3bc5df3c3f52c7050
Frank Galligan [Fri, 7 Dec 2012 23:29:18 +0000 (15:29 -0800)]
Remove unused symbols from vp9 asm offsets C files.
Change-Id: I366e6d175da3012f1c8607fd7fad99fbbb616091
Frank Galligan [Fri, 7 Dec 2012 23:25:44 +0000 (15:25 -0800)]
Fix implicit cast.
Change-Id: I1eb7433061a6c529471026e0ebdc6467942062eb
Ronald S. Bultje [Fri, 7 Dec 2012 22:45:05 +0000 (14:45 -0800)]
32x32 transform for superblocks.
This adds Debargha's DCT/DWT hybrid and a regular 32x32 DCT, and adds
code all over the place to wrap that in the bitstream/encoder/decoder/RD.
Some implementation notes (these probably need careful review):
- token range is extended by 1 bit, since the value range out of this
transform is [-16384,16383].
- the coefficients coming out of the FDCT are manually scaled back by
1 bit, or else they won't fit in int16_t (they are 17 bits). Because
of this, the RD error scoring does not right-shift the MSE score by
two (unlike for 4x4/8x8/16x16).
- to compensate for this loss in precision, the quantizer is halved
also. This is currently a little hacky.
- FDCT and IDCT is double-only right now. Needs a fixed-point impl.
- There are no default probabilities for the 32x32 transform yet; I'm
simply using the 16x16 luma ones. A future commit will add newly
generated probabilities for all transforms.
- No ADST version. I don't think we'll add one for this level; if an
ADST is desired, transform-size selection can scale back to 16x16
or lower, and use an ADST at that level.
Additional notes specific to Debargha's DWT/DCT hybrid:
- coefficient scale is different for the top/left 16x16 (DCT-over-DWT)
block than for the rest (DWT pixel differences) of the block. Therefore,
RD error scoring isn't easily scalable between coefficient and pixel
domain. Thus, unfortunately, we need to compute the RD distortion in
the pixel domain until we figure out how to scale these appropriately.
Change-Id: I00386f20f35d7fabb19aba94c8162f8aee64ef2b
John Koleszar [Thu, 6 Dec 2012 21:56:25 +0000 (13:56 -0800)]
libvpx_test: ensure rtcd init functions are called
In addition to allowing tests to use the RTCD-enabled functions (perhaps transitively)
without having run a full encode/decode test yet, this fixes a linking issue with
Apple's G++ whereby the Common symbols (the function pointers themselves) wouldn't
be resolved. Fixing this linking issue is the primary impetus for this patch, as none
of the tests exercise the RTCD functionality except through the main API.
Change-Id: I12aed91ca37a707e5309aa6cb9c38a649c06bc6a
Johann [Tue, 4 Dec 2012 00:23:49 +0000 (16:23 -0800)]
Move vp8_scale_frame to vpx namespace
Change-Id: I92d613e89c8f1174eca0789116120bfa20c25c28
Johann [Mon, 3 Dec 2012 23:08:17 +0000 (15:08 -0800)]
Remove last duck_ functions
Change-Id: I5fbcd2006d05bfe841f3c7af9c1aeb2cb83b3149
Johann [Mon, 3 Dec 2012 22:19:49 +0000 (14:19 -0800)]
Use 'vpx_scale' consistently
Change-Id: I178352813d2b8702d081caf405de9dbad9af2cc3
Paul Wilkins [Wed, 5 Dec 2012 17:14:46 +0000 (09:14 -0800)]
Merge "Change to MV reference search." into experimental
John Koleszar [Wed, 5 Dec 2012 17:01:57 +0000 (09:01 -0800)]
Merge remote-tracking branch 'origin/vp9-preview' into experimental
Johann [Mon, 3 Dec 2012 20:26:51 +0000 (12:26 -0800)]
Begin to refactor vpx_scale usage in VP9
Only declare the functions in vpx_scale RTCD and include the relevant
header.
Remove unused files and functions in vpx_scale to avoid wasting time
renaming. vpx_scale/win32/scaleopt.c contains functions which have not
been called in a long time but are potentially optimized.
The 'vp8' functions have not been renamed yet. That is for after the
cleanup.
Change-Id: I2c325a101d60fa9d27e7dfcd5b52a864b4a1e09c
Johann [Sun, 2 Dec 2012 22:14:00 +0000 (14:14 -0800)]
Remove ARM optimizations from VP9
Change-Id: I9f0ae635fb9a95c4aa1529c177ccb07e2b76970b
Johann [Fri, 30 Nov 2012 20:25:01 +0000 (12:25 -0800)]
Update ARM for vpx_scale changes
Refactor asm_offsets for vpx_scale.
Change-Id: I2db0eeb28c8e757bd033c6614a1e5319a1a204a5
John Koleszar [Wed, 5 Dec 2012 16:41:35 +0000 (08:41 -0800)]
Merge remote-tracking branch 'origin/vp9-preview' into experimental
John Koleszar [Wed, 5 Dec 2012 16:27:48 +0000 (08:27 -0800)]
vp9_bilinear_filters_mmx: add missing extern specifiers
Change-Id: Ibabf18947f90cb4f45052763ebf44cfb8209bd8b
Paul Wilkins [Tue, 4 Dec 2012 17:21:05 +0000 (17:21 +0000)]
Change to MV reference search.
This patch reduces the cpu cost of the MV ref
search by only allowing insert for candidates
that would be in the current top 4.
This could alter the outcome and slightly favors
near candidates which are tested first but also
limits the worst case loop count to 4 and means in
many cases it will drop out and not happen.
Change-Id: Idd795a825f9fd681f30f4fcd550c34c38939e113
Johann [Tue, 4 Dec 2012 23:23:42 +0000 (15:23 -0800)]
Merge "Begin to refactor vpx_scale usage in VP9" into experimental
Yaowu Xu [Tue, 4 Dec 2012 20:28:10 +0000 (12:28 -0800)]
Enable unit tests to build with MSVC
Change-Id: Ie80597221bee494679ae2ba50cca22dea2609cba
Yaowu Xu [Tue, 4 Dec 2012 16:35:37 +0000 (08:35 -0800)]
Fix the build with MSVC
1. remove the dependency on non existing "vp9_temporal_filter_x86.h"
2. prefix filenames with vp9_ in obj_int_extract.bat to reflect the
change of the actual filenames.
Change-Id: Ib1b4d96ac41788f76917764a6722d8461c857302
Frank Galligan [Tue, 4 Dec 2012 01:29:46 +0000 (17:29 -0800)]
Merge "vp9: Fix assert check." into vp9-preview
Yaowu Xu [Mon, 3 Dec 2012 22:53:45 +0000 (14:53 -0800)]
merged optimiz_b_16x16() into optmize_b()
The commit changed the trellis quantization function optimize_b() to
work for MBs using all transform sizes, and eliminated the function
for MB using 16x16 transform only, optimize_b_16x16.
Change-Id: I3fa650587ab5198ed16315b38754783a72b33ba2
Johann [Mon, 3 Dec 2012 21:54:38 +0000 (13:54 -0800)]
Merge "Remove ARM optimizations from VP9" into experimental
Johann [Mon, 3 Dec 2012 21:54:04 +0000 (13:54 -0800)]
Merge "Update ARM for vpx_scale changes" into experimental
Johann [Mon, 3 Dec 2012 20:26:51 +0000 (12:26 -0800)]
Begin to refactor vpx_scale usage in VP9
Only declare the functions in vpx_scale RTCD and include the relevant
header.
Remove unused files and functions in vpx_scale to avoid wasting time
renaming. vpx_scale/win32/scaleopt.c contains functions which have not
been called in a long time but are potentially optimized.
The 'vp8' functions have not been renamed yet. That is for after the
cleanup.
Change-Id: I2c325a101d60fa9d27e7dfcd5b52a864b4a1e09c
Johann [Sun, 2 Dec 2012 22:14:00 +0000 (14:14 -0800)]
Remove ARM optimizations from VP9
Change-Id: I9f0ae635fb9a95c4aa1529c177ccb07e2b76970b
Johann [Fri, 30 Nov 2012 20:25:01 +0000 (12:25 -0800)]
Update ARM for vpx_scale changes
Refactor asm_offsets for vpx_scale.
Change-Id: I2db0eeb28c8e757bd033c6614a1e5319a1a204a5
Jim Bankoski [Mon, 3 Dec 2012 20:41:30 +0000 (12:41 -0800)]
Merge "fixes --disable-vp9-encoder" into vp9-preview
Jim Bankoski [Mon, 3 Dec 2012 20:21:16 +0000 (12:21 -0800)]
fixes --disable-vp9-encoder
Change-Id: I467bf0fdf3b35326bcce58d5459e6d2dbfd6c5e5
Frank Galligan [Mon, 3 Dec 2012 20:18:59 +0000 (12:18 -0800)]
vp9: Fix assert check.
Change-Id: If0cc1ab60dff6abd67dae7c7b3dc83a1afd7fe65
Frank Galligan [Mon, 3 Dec 2012 18:20:11 +0000 (10:20 -0800)]
vp9: Remove superfluous command.
- vpx_calloc is called on arf_not_zz above.
- Note The removed vpx_memset call had an issue with sizeof.
Change-Id: I86fd7a167d0a042e581e613e2a6c0b5e63073fc6
John Koleszar [Mon, 3 Dec 2012 17:18:45 +0000 (09:18 -0800)]
Merge "Rename vpx_scale/rtcd.c to vpx_scale/vpx_scale_rtcd.c" into experimental
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
Frank Galligan [Fri, 30 Nov 2012 23:48:52 +0000 (15:48 -0800)]
Rename vpx_scale/rtcd.c to vpx_scale/vpx_scale_rtcd.c
Change-Id: I4765ca3dab880a3673c15fb56b2d912ec2ea194e
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
Jim Bankoski [Fri, 30 Nov 2012 15:29:43 +0000 (07:29 -0800)]
warnings in various experiments
Change-Id: Ib5106d4772450f8026f823dd743f162ab833b1d6
Jim Bankoski [Fri, 30 Nov 2012 00:36:10 +0000 (16:36 -0800)]
google style guide include guards
Change-Id: I2c252f3ddcc99e96c1f5d3dab8bcb25a2a3637ea
Yunqing Wang [Fri, 30 Nov 2012 00:07:14 +0000 (16:07 -0800)]
Merge "Further improve macroblock loop filters" into experimental
Deb Mukherjee [Thu, 29 Nov 2012 23:33:42 +0000 (15:33 -0800)]
Merge "Minor refactoring of superblock decoding" into experimental
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
Jim Bankoski [Thu, 29 Nov 2012 22:24:54 +0000 (14:24 -0800)]
a vp8 warning to boot.
Change-Id: I32ed051c8b4d3e5afa4e13bb4e3b2ca5e922ff64
Jim Bankoski [Thu, 29 Nov 2012 22:14:26 +0000 (14:14 -0800)]
intrinsic warnings begone
Change-Id: I6a224c590b6a2c5b91f9084ffb8083d18223a206
Jim Bankoski [Thu, 29 Nov 2012 22:07:21 +0000 (14:07 -0800)]
last remaining warning
Change-Id: I1f49d96cdb5e342041c9a72ef31df361a1b609eb
Jim Bankoski [Thu, 29 Nov 2012 19:23:02 +0000 (11:23 -0800)]
fix implicit warnings idct etc
Change-Id: I54a122cc8c0b6ed2dbc3c6ecfcd44736cd40b687
Jim Bankoski [Thu, 29 Nov 2012 18:10:51 +0000 (10:10 -0800)]
Additional warning message cleanup.
Change-Id: I429a97ac57db3de0bf67ce3f3fe0c6b409f77a9e
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
Yaowu Xu [Thu, 29 Nov 2012 17:33:59 +0000 (09:33 -0800)]
Merge "more unused variables." into experimental
Yaowu Xu [Thu, 29 Nov 2012 17:33:52 +0000 (09:33 -0800)]
Merge "unused variable" into experimental
Yaowu Xu [Thu, 29 Nov 2012 17:33:41 +0000 (09:33 -0800)]
Merge "unused var removed" 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
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
Jim Bankoski [Thu, 29 Nov 2012 17:07:12 +0000 (09:07 -0800)]
more warning cleanup
Change-Id: Iaa67bcf1e866dfe255c4e458d4e51e9c708ffcf4
Jim Bankoski [Thu, 29 Nov 2012 17:02:47 +0000 (09:02 -0800)]
unused variables & warnings
Change-Id: Ibea3bc80eb26a975faaa60268bbc93237f82bc57
Jim Bankoski [Thu, 29 Nov 2012 16:54:59 +0000 (08:54 -0800)]
more unused variables.
Change-Id: Ibe11e9275949b26a77fa9c8ac2e7c356ae533d5d
Jim Bankoski [Thu, 29 Nov 2012 16:51:19 +0000 (08:51 -0800)]
unused variable
Change-Id: I1302a6eaa840d419e8bb9ad0673e42ef139d3fee
Jim Bankoski [Thu, 29 Nov 2012 16:50:20 +0000 (08:50 -0800)]
unused var removed
Change-Id: I9d0efdff0c79ea4bdd660098106b64776bdd4483
Jim Bankoski [Thu, 29 Nov 2012 16:13:18 +0000 (08:13 -0800)]
signed mismatch mvrefcount
Change-Id: Ie34820c1b6eaba9cf9316415a46f48af79c41646
Jim Bankoski [Thu, 29 Nov 2012 15:47:50 +0000 (07:47 -0800)]
warning error missing void
Change-Id: I914bcc669297d3414261486bf1bfb716c2ecc804
Jim Bankoski [Thu, 29 Nov 2012 15:19:38 +0000 (07:19 -0800)]
ihtllm moves to rtcd
clears up some warnings
Change-Id: I9899637497c6ad7519f098e055ab98580ae6d688
Jim Bankoski [Thu, 29 Nov 2012 14:53:08 +0000 (06:53 -0800)]
fix vp9_vp8 files renamed
Change-Id: I20c426e91ee49666db42e20eb074095ab6b8ec5d
Jim Bankoski [Thu, 29 Nov 2012 00:47:30 +0000 (16:47 -0800)]
more rtcd cleanup
Change-Id: Ieefd76e164ca4aa87597da0412977614ddfbacb7
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
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
Yaowu Xu [Wed, 28 Nov 2012 21:56:42 +0000 (13:56 -0800)]
Merge "remove the vp9_default_mode_contexts_a" into experimental
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
Jim Bankoski [Wed, 28 Nov 2012 18:41:40 +0000 (10:41 -0800)]
fixed includes to be fully specified
Change-Id: Ia1cce221f8511561b9cbd8edb7726fbc286ff243
Jim Bankoski [Wed, 28 Nov 2012 18:30:42 +0000 (10:30 -0800)]
Merge "remove postproc invokes" into experimental
John Koleszar [Wed, 28 Nov 2012 18:08:37 +0000 (10:08 -0800)]
Merge "Clamp decoded feature data" into experimental
John Koleszar [Wed, 28 Nov 2012 18:08:22 +0000 (10:08 -0800)]
Merge "Revert "make: flatten object file directories"" into experimental
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
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
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
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 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
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