3358 Commits

Author SHA1 Message Date
John Koleszar
d6290c3b07 Merge "all_builds.py: add ability to pass extra configure flags" into experimental 2012-10-03 08:28:51 -07:00
John Koleszar
ea90cee2a9 Merge "Added unit test for subtract functions" 2012-10-03 08:17:16 -07:00
Jim Bankoski
6f35b1958e Disable keyframe in real time that's placed one frame after a cut.
The codec as it stood placed a keyframe one frame after a
real cut scene - and ignored datarate and other considerations.

TODO: Its possible that we should detect a keyframe and recode
the frame ( in certain circumstances) to improve quality.

Change-Id: Ia1fd6d90103f4da4d21ca5ab62897d22e0b888a8
2012-10-01 14:17:43 -07:00
Marco Paniconi
9704cdec9f Resetting of the cyclic_refresh_mode_index:
Reset the cyclie refresh mode index in alloc_compressor_data().
This is needed to handle both cases of internal and
external spatial resizing.

Change-Id: I2697e12d45135eae2e8f0d45161811f24722312a
2012-09-27 14:34:43 -07:00
Deb Mukherjee
3f5d60b384 Entropy coding for hybrid transform
Separates the entropy coding context models for 4x4, 8x8 and 16x16
ADST variants.

There is a small improvement for HD (hd/std-hd) by about 0.1-0.2%.
Results on derf/yt are about the same, probably because there is not
enough statistics.

Results may improve somewhat once the initial probability tables are
updated for the hybrid transforms which is coming soon.

Change-Id: Ic7c0c62dacc68ef551054fdb575be8b8507d32a8
2012-09-27 11:21:39 -07:00
Marco Paniconi
d539c1db5a Reset the cyclic_refresh_mode_index to 0 on resize.
On an internal spatial resize, this mode index was not reset to 0,
and therefore could exceed dimensions of seg_map or cyclic_refresh_map.

Change-Id: I6fe85dbd2765eb0207a9d9f71fda8d8b8c34f075
2012-09-26 15:46:51 -07:00
Scott LaVarnway
96f706655e Added unit test for subtract functions
Patch Set 1: gain familiarity with unit tests... added simple
4x4 subtract test
Patch Set 2: fixed mistakes, parameterized as suggested
Patch Set 3: randomized the source/predictor data


Change-Id: I33432bdf7c9f2a9b8c2533a37106382c2a8209ee
Signed-off-by: Scott LaVarnway <slavarnway@google.com>
2012-09-26 13:45:53 -07:00
John Koleszar
3730963073 Merge "check for x32 targets" 2012-09-25 11:32:11 -07:00
John Koleszar
d377580d07 Merge "update gitignores" 2012-09-25 11:25:53 -07:00
Mike Frysinger
d9ed9f9dae update gitignores
Change-Id: I67bf154e35fa02b407a9b2c312a536d6bb2aaaf2
2012-09-25 14:22:13 -04:00
Jim Bankoski
ab98103fac Merge "disable segmentation on enhancement layers" 2012-09-25 10:49:25 -07:00
Mike Frysinger
a75a9cf2fd check for x32 targets
Add configure detection of the new x32 ABI as well as support in asm.

Change-Id: Ic66a069599adeb81062090e3f11b71ee1fb97cb8
2012-09-25 12:22:11 -04:00
Scott LaVarnway
eb492100cd Merge "Move frame allocations out of vp8_decode_frame()" 2012-09-24 16:15:54 -07:00
Scott LaVarnway
4e72915ebc Merge "Removed bc and bc2 vp8_readers from VP8D_COMP" 2012-09-24 13:50:30 -07:00
Scott LaVarnway
f4316f39a1 Move frame allocations out of vp8_decode_frame()
in order to make it easier to implement the frame-base multithreading.

Change-Id: Iea2fd05be34fa704848fdc7669bf167f2ed229c5
2012-09-24 12:44:45 -07:00
John Koleszar
0211cd899a rtcd/win32: prefer win32 primatives to pthreads
Fixes some build issues for people building for win32 who have a
pthreads emulation layer installed.

Change-Id: I0e0003fa01f65020f6ced35d961dcb1130db37a8
2012-09-24 11:47:35 -07:00
Jim Bankoski
22141d9d79 disable segmentation on enhancement layers
This should avoid problems with blocks gettings high quality
improvement despite having recently moved:

Change-Id: Ic0af0de2d6577807fa3c553f47b55d547ef36359
2012-09-24 07:53:26 -07:00
Marco Paniconi
b501251e2e Update to cyclic refresh:
Set the seg map to 0 for key frame.

In previous commit on cyclic refresh, the seg map for key frame
was not reset, and instead used the seg map from last frame.

Change-Id: I848eb2face420dfcd2f7daca6f070b9127ca938b
2012-09-23 21:01:12 -07:00
Marco Paniconi
5979b89b92 Update to cyclic refresh.
-Increase the amount of mbs to be refreshed.
-Replace the delta qp with a fixed and reduced delta.
-Change to the mb update loop to try to always update same amount of mbs.

Change-Id: I93ac88002fd8dc677d2337f77998ff93f64e4ff9
2012-09-21 18:57:30 -07:00
Deb Mukherjee
70e21afb3f Separating 8x8DCT use from hybridtransform8x8
With this change, even if hybridtransform8x8 experiment is off,
8x8 dct is used for the I8x8 mode. However note that the gains
observed with the hybridtransform8x8 experiment will now be less,
since part of the gain is now merged in.

Change-Id: I9afb3880906fd0a1368a374041fc08efcf060c54
2012-09-21 16:39:23 -07:00
Scott LaVarnway
c03cc3a85e Removed bc and bc2 vp8_readers from VP8D_COMP
Used mbc instead.

Change-Id: If22136b4fee89b68ca2246265f3c27853701136c
2012-09-21 11:00:29 -07:00
Yaowu Xu
fff019cea4 fixed inconsistency of transform size decision
for MBs using i8x8 prediciton mode when hybridtransform8x8 is not
enabled in configure.

Change-Id: I3e3c8bb1c0261108c1c71213ca9557b0ce558036
2012-09-20 16:31:30 -07:00
Scott LaVarnway
e278673c8e Moved vp8dx_get_raw_frame() call to vp8_get_frame()
This change is necessary for the frame-based multithreading
implementation.
Since the postproc occurs in this call, vpxdec was modified to time around
vpx_codec_get_frame()

Change-Id: I389acf78b6003cd35e41becc16c893f7d3028523
2012-09-19 12:30:44 -07:00
Scott LaVarnway
154f1c2234 Merge "Changed setup intra recon to be row based" 2012-09-17 16:07:08 -07:00
Adrian Grange
5e4d5e1877 Added default return value to transform selector
The non-void function didn't return a value in the default case.

Change-Id: Ie4c965315bedc189d2080dd65cf29d3347661946
2012-09-17 15:44:32 -07:00
Adrian Grange
eec08d5cfc Merge "Update to 2 layer case in vp8_scalable_patterns." 2012-09-17 13:40:07 -07:00
Scott LaVarnway
57c7e45066 Merge "Moved mb_no_coeff_skip flag read" 2012-09-17 13:08:38 -07:00
Scott LaVarnway
1338a98d07 Merge "Removed pre_mvc" 2012-09-17 13:08:18 -07:00
Marco Paniconi
1076101b2b Update to 2 layer case in vp8_scalable_patterns.
Change-Id: I11aa90be41dd585c9784301f47a9d580fac09260
2012-09-17 12:45:22 -07:00
Marco Paniconi
33d91719d0 Update to vp8_scalable_patters.
Change-Id: I43ea65bf0a35ddb33a096a392e10b1869ea73f9a
2012-09-14 12:07:48 -07:00
Yaowu Xu
d482fbff53 removed redundant initialization
Change-Id: I34569375e520759860504c3dfb17a2c27ceb9aed
2012-09-14 09:53:11 -07:00
Adrian Grange
0925442e66 Merge "Updates to vp8_scalable_patterns.c." 2012-09-14 09:49:06 -07:00
Yaowu Xu
6d8538e508 Use 3 rows and cols of pixels for ref_mv scoring
The commit changed to use 3 rows above and 3 cols from left for SAD
scoring for selecting the best reference motion vector. The change
helped std-hd set by >.2% on psnr/ssim metrics.

Change-Id: Ifad3b528d0b4b6e3c22518af789d76eff23c1520
2012-09-14 09:47:43 -07:00
Scott LaVarnway
a082467891 Moved mb_no_coeff_skip flag read
from vp8_decode_frame() to mb_mode_mv_init()

Change-Id: I267fd764a4c826d62e6799dceb1b8fb5f97fde6d
2012-09-13 13:37:24 -07:00
Scott LaVarnway
260f5071ed Removed pre_mvc
Not used.

Change-Id: Ifbd97c9ad537d5184f7e305fa8acf6f027978b6b
2012-09-13 11:55:57 -07:00
Scott LaVarnway
648cfcb437 Changed setup intra recon to be row based
Initialize the top line at the beginning of each frame and
the left column at the beginning of each row.

Change-Id: I5412f7ea49ffc490215cf65a62715a6c5e3a5a29
2012-09-13 11:51:27 -07:00
Adrian Grange
e1210c6aed Removed redundant line.
Removed spurious line that has no effect.

Change-Id: I9dc90babbbfcaca049d4a40dc996edc7de123e01
2012-09-13 11:37:55 -07:00
Jim Bankoski
08cf9faed0 Merge "valgrind found motion vectors which exceeded frame boundaries" 2012-09-12 13:50:29 -07:00
Deb Mukherjee
2b26cf1786 Adds feature for companded MV encoding
The high-precision (1/8) pel bit is turned off if the reference
MV is larger than a threshold. The motivation for this patch is
the intuition that if motion is likely large (as indicated by
the reference), there is likley to be more motion blur, and as
a result 1/8 pel precision would be wasteful both in rd sense
as well as computationally.

The feature is incorporated as part of the newmventropy experiment.
There is a modest RD improvement with the patch. Overall the
results with the newmventropy experiment with the threshold being
16 integer pels are:

derf: +0.279%
std-hd: +0.617%
hd: +1.299%
yt: +0.822%

With threshold 8 integer pels are:

derf: +0.295%
std-hd: +0.623%
hd: +1.365%
yt: +0.847%

Patch: rebased
Patch: rebase fixes

Change-Id: I4ed14600df3c457944e6541ed407cb6e91fe428b
2012-09-12 11:51:10 -07:00
Deb Mukherjee
d406334f27 Cleanups for hybrid transform
Some cleanups on the transform size and type selection logic.

Change-Id: If2e9675459482242cf83b4f7de7634505e3f6dac
2012-09-11 20:53:13 -07:00
Jim Bankoski
7b7ca65bfc fix valgrind mem leak on garbage decode
Multiple decoders were getting allocated per frame.
If the decoder crashed we exitted with out freeing
them and the next time in we'd allocate over.

This fix removes the allocation and just has 8
boolcoders in the pbi structure

Change-Id: I638b5bda23b622b43b7992aec21dd7cf6f6278da
2012-09-11 16:34:36 -07:00
Yaowu Xu
d4c329c4da Merge "Revert "Hybrid transform cleanups"" into experimental 2012-09-11 15:00:51 -07:00
Debargha Mukherjee
aac982e89c Revert "Hybrid transform cleanups"
This reverts commit c5af82b7ed6d89a4a12003b8d1c6b4befcadce92

There was a mismatch bug introduced by this patch. Hence reverting until it is fixed.
2012-09-11 14:52:20 -07:00
Marco Paniconi
8d02833a61 Updates to vp8_scalable_patterns.c.
Updated/added a few cases of temporal patterns,
and some changes to the encoder settings.

Change-Id: Idaa75cfc4a26e5b6321f273ef9450b5c85368a4d
2012-09-11 13:45:19 -07:00
Scott LaVarnway
818b10396d valgrind found motion vectors which exceeded frame boundaries
Bug introduced in I02d034c70cd97b65025d59dd67c695e1db529f0b


Change-Id: Ifb74ab659f3b3cf5f5b95046bacffb202d5b4d64
2012-09-11 09:14:02 -07:00
Deb Mukherjee
44d27c7b2c Merge "Hybrid transform cleanups" into experimental 2012-09-10 15:39:37 -07:00
Deb Mukherjee
c5af82b7ed Hybrid transform cleanups
Some cleanups that will make it easier to maintain the code
and incorporate upcoming changes on  entropy coding for the
hybrid transforms.

Change-Id: I44bdba368f7b8bf203161d7a6d3b1fc2c9e21a8f
2012-09-10 15:27:56 -07:00
Jim Bankoski
2ff6d35064 valgrind caught uninitialized cond
If the decoder crashes and returned an error before it set up
block offsets but after it set up frame buffers.   We had a
problem decoding the next keyframe because the block offsets
were never set.

Change-Id: Ied2866e9770d80fc66241d5e0d978d4f5f9cdd89
2012-09-07 16:38:15 -07:00
Paul Wilkins
778ec421e7 Partial merge of NEWBESTREFMV and NEW_MVREF.
This commit merges those parts of the CONFIG_NEW_MVREF
that specifically relate to choosing a better set of candidate
MV references into the NEWBESTREFMV experiment.

CONFIG_NEW_MVREF will then be used for changes relating
to the explicit coding of a cost optimized MV reference in the
bitstream as part of MV coding.

Change-Id: Ied982c0ad72093eab29e38b8cd74d5c3d7458b10
2012-09-07 14:21:22 +01:00
Paul Wilkins
38e1c79185 MV reference changes
Extend experiment to use both vectors from MBs
coded using compound prediction as candidates.

In final sort only consider best 4 candidates
for now but make sure 0,0 is always one of them.

Other minor changes to new MV reference code.
Pass in Mv list to vp8_find_best_ref_mvs().

Change-Id: Ib96220c33c6b80bd1d5e0fbe8b68121be7997095
2012-09-07 12:46:41 +01:00