Commit Graph

371 Commits

Author SHA1 Message Date
John Koleszar
849763d05f Merge remote branch 'internal/upstream' into HEAD 2010-11-23 00:05:05 -05:00
Paul Wilkins
ad6150f769 Recalibration of bits per MB tables
The baseline bits per MB prediction tables have been
re calibrated based on the assumption that bits per mb
is inversely proportional to the quantizer level.

Change-Id: Ibd355c7acac4b8053dda1baf1032fe35f11da7f7
2010-11-22 13:17:35 +00:00
Paul Wilkins
1753f0d208 Merge "Added extra two pass stats gathering." 2010-11-22 04:11:20 -08:00
John Koleszar
006247ac33 Merge remote branch 'internal/upstream' into HEAD 2010-11-21 00:05:06 -05:00
Paul Wilkins
70b885a0e8 Added extra two pass stats gathering.
Added code to record spend so far against planed budget.

Change-Id: I5a3335346fa1771b2b1219df9f6127f9993d2594
2010-11-19 14:12:33 -05:00
John Koleszar
1a1a8ea4df Merge remote branch 'internal/upstream-experimental' into HEAD 2010-11-19 00:05:03 -05:00
Yaowu Xu
0867b81678 remove low pass filtering from two 4x4 intra prediction
In the process of developing new intra prediction modes, tests have
shown removal of the low pass filtering from B_HE_PRED and B_VE_PRED
has an overall minor positive impact in both PSNR and SSIM metric.
Overall difference is about 0.1%. The change shall also have a small
positive impact on speed. Intuitively, this change should also reduce
some of the tendency of "flattening"

Change-Id: I3c43b0daca833c6eff77d00f19c811f9ef9368a3
2010-11-18 10:42:08 -08:00
Yaowu Xu
39ceef38a7 changed MAX_PSNR to 100
Changing the MAX_PSNR to 100 to allow testing of further experiments
on extending quantizer range to near lossless. With an effective
quantizer of 1, encoder achieves ~68DB, which is consistent with
fdct/idct round trip error.

Change-Id: I7b6d0e94a8936968ef42e82e63ebb13999c36832
2010-11-18 09:12:02 -08:00
Yaowu Xu
06c70d304f extends the range of tokens
Extending the value range of tokens allows further experiments on
extending quantizer range. Encoder and decoder were verified to
produce matching reconstructed buffers by tests with forced
quantized value of 1.

Change-Id: I12faf92832867870b6f71ddeafbf643f1040086d
2010-11-18 09:07:16 -08:00
John Koleszar
a2ebd0f3e4 Merge remote branch 'origin/master' into experimental 2010-11-18 00:05:05 -05:00
John Koleszar
f3919f1879 Merge remote branch 'internal/upstream' into HEAD 2010-11-18 00:05:04 -05:00
Pascal Massimino
ed5ab7fa49 remove warning
was having: "vp8/encoder/onyx_if.c:5365: warning: comparison of unsigned expression >= 0 is always true"
2010-11-17 16:50:02 -08:00
Scott LaVarnway
9a6740af80 Merge "Removed unnecessary checks." 2010-11-17 11:28:22 -08:00
Scott LaVarnway
f7670acc68 Removed unnecessary checks.
macro_block_yrd and vp8_rdcost_mby are not called for SPLITMV.

Change-Id: I2224d3c8725df526d48426447482768d543752f1
2010-11-17 14:25:48 -05:00
Suman Sunkara
15a1dca2fb Merge "FIXED bug in when CONFIG_SEGMENTATION NOT DEFINED" into experimental 2010-11-17 12:07:24 -05:00
Jim Bankoski
c35057f0f6 FIXED bug in when CONFIG_SEGMENTATION NOT DEFINED 2010-11-17 11:30:24 -05:00
Paul Wilkins
f874391e02 Replaced recode loop test with a function call
Replaced existing code to decide if a frame recode is required
with a function call. This is to simplify addition of extra clauses
that may be needed for the planned constrained quality mode.

Also fixed a bug where by alt ref not considered in the test.

Change-Id: I3d40bb21abe3e19f8456761e6849deb171738b60
2010-11-17 15:12:04 +00:00
John Koleszar
3a778de77a Merge remote branch 'origin/master' into experimental 2010-11-17 00:05:05 -05:00
John Koleszar
8232a3a0e4 Merge remote branch 'internal/upstream' into HEAD 2010-11-17 00:05:04 -05:00
Fritz Koenig
99d02c0f9f Merge "Comments for alt ref flags." 2010-11-16 16:11:39 -08:00
Fritz Koenig
69ee697fef Comments for alt ref flags.
Clarify what the alt ref flags do when encoding.

Change-Id: I71f78e0f42edae633fb91840f29dfbe64362c44c
2010-11-16 15:16:24 -08:00
Suman Sunkara
388546bc93 Merge branch 'experimental' of ssh://on2-git.corp.google.com:29418/libvpx into test
Conflicts:
	configure

Change-Id: Id874dc46b13e8b5da4179fc3b48e354ec313a2cd
2010-11-16 16:31:59 -05:00
Suman Sunkara
4b3f72001d Merge branch 'experimental' of ssh://on2-git.corp.google.com:29418/libvpx into test
Conflicts:
	vp8/common/blockd.h
	vp8/decoder/decodemv.c
	vp8/decoder/decodframe.c
	vp8/decoder/demode.c
	vp8/decoder/onyxd_if.c
	vp8/decoder/onyxd_int.h
	vp8/encoder/encodeframe.c

Change-Id: Ic379f4dffaded9796dc19d56be304d3f8527c61f
2010-11-16 16:30:59 -05:00
Jim Bankoski
b4a3602f66 changes to start experimenting with color segmentation prediction modes. 2010-11-16 14:38:40 -05:00
Yaowu Xu
d49da085c0 correct errors in token alphabet descriptions
There were a few errors in the comment section that describe VP8 token
alphabet table.

Change-Id: Ie6728a0e08bc3798893221b60408d5b201064bdc
2010-11-16 10:51:43 -08:00
John Koleszar
791cae74da Merge remote branch 'origin/master' into experimental 2010-11-16 00:05:04 -05:00
John Koleszar
00fe7441e9 Merge remote branch 'internal/upstream' into HEAD 2010-11-16 00:05:04 -05:00
Fritz Koenig
e180255375 Remove stack shadowing for x86-x64 for SAD functions.
x86-64 passes arguments in registers.  There is no need to push
them to the stack before using them.

This fixes 15acc84f10 where ebx
was not getting preserved on x86.

Change-Id: I1214b5f818a0201f75ab6ad7d5c6f448e09b16c2
2010-11-15 10:56:02 -08:00
Paul Wilkins
f4709d2895 Merge "Bad cost tables used in ARNR filtering." 2010-11-15 09:55:35 -08:00
Paul Wilkins
373f5c3144 Bad cost tables used in ARNR filtering.
The use of incorrect mv costing tables in the ARNR sub-pel
filtering code led to corruption of the altref buffer in some cases,
particularly at low data rates.

The average gain from this fix is about 0.3% but there are a few
extreme cases where nasty and visible artifacts manifested and
for these few data points the improvement is > 10%.

PGW and AWG

Change-Id: I95cc02b196a433e71d0d2bd2b933fe68ed31e796
2010-11-15 17:47:12 +00:00
Yaowu Xu
73189f21b3 Merge "make rdmult adaptive for intra in quantizer RDO" 2010-11-15 09:22:45 -08:00
John Koleszar
9b5cd1c3ff Merge remote branch 'internal/upstream' into HEAD 2010-11-13 00:05:05 -05:00
John Koleszar
25fa447acb Merge remote branch 'origin/master' into experimental 2010-11-13 00:05:04 -05:00
John Koleszar
08d45a99b5 Merge remote branch 'internal/upstream' into HEAD 2010-11-12 00:05:03 -05:00
John Koleszar
7d799d2ced Merge remote branch 'origin/master' into experimental 2010-11-12 00:05:03 -05:00
Yaowu Xu
ef2f27f10e make rdmult adaptive for intra in quantizer RDO
This intends to correct the tendency that VP8 aggressively favors rate
on intra coded frames. Experiments tested different numbers in [0, 1]
and found 9/16 overall provided about 2-4% gains for all-intra coded
clips based on vpx-ssim metric. The impact on regular encoded clips
is much smaller but positive overall. Overall impact on psnr is also
positive even though very small.

Change-Id: If808553aaaa87fdd44691f9787820ac9856d9f8a
2010-11-11 11:33:35 -08:00
John Koleszar
0a49747b01 quantizer: fix assertion in fast quantizer path
The fast quantizer assembly code has not been updated to match the new
exact quantizer, which was made the default in commit 6adbe09.
Specifically, they are not aware of the potential for the coefficient
to be scaled, which results in the quantized result exceeding the range
of the DCT. This patch restores the previous behavior of using the
non-shifted coefficients when in the fast quantizer code path, but
unfortunately requires rebuilding the tables when switching between the
two.

Change-Id: I0a33f5b3850335011a06906f49fafed54dda9546
2010-11-11 13:05:20 -05:00
Suman Sunkara
b9a18344cf Use of temporal context for encoding delta updates.
- Used three probability approach for temporal context as follows:
P0 - probability of no change if both above and left not changed
P1 - probability of no change if one of above and left has changed
P2 - probability of no change if both above and left have changed

In addition, a 1 bit/frame has been used to decide whether to use temporal context or to encode directly.  The cost of using both the schemes is calculated ahead and the temporal_update flag is set if the cost of using temporal context is lower than encoding the segment ids directly.

This approach has given around 20% reduction in cost of bits needed to encode segmentation ids.

Change-Id: I44a5509599eded215ae5be9554314280d3d35405
2010-11-11 11:31:36 -05:00
Fritz Koenig
58083cb34d Revert "Remove stack shadowing for x86-64"
This reverts commit 15acc84f10.

Change-Id: Ia640be8cbc134432914849c1750f62575ea084e6
2010-11-11 08:20:02 -08:00
John Koleszar
f225211256 Merge remote branch 'origin/master' into experimental
Conflicts:
	configure

Change-Id: Ifa63e4610657f75cb953aa7ca08f997267612cc0
2010-11-11 09:25:10 -05:00
John Koleszar
1ea4c2924c Merge remote branch 'internal/upstream' into HEAD
Conflicts:
	configure

Change-Id: I1c7bae5241f999387cae3f2abf2dfc84fe3f6651
2010-11-11 09:22:46 -05:00
Paul Wilkins
213f7b0907 Merge "Relax rate control for last few frames" 2010-11-11 02:39:20 -08:00
Fritz Koenig
9b1ece2cca Merge "Remove stack shadowing for x86-64" 2010-11-10 14:36:10 -08:00
Fritz Koenig
5f0e0617ba FDCT optimizations.
Fixed up the fdct for mmx and 8x4 sse2 to match them
most recent changes.

Change-Id: Ibee2d6c536fe14dcf75cd6eb1c73f4848a56d719
2010-11-10 14:34:02 -08:00
Fritz Koenig
647df00f30 postproc : Re-work posproc calling to allow more flags.
Debugging in postproc needs more flags to allow for specific
block types to be turned on or off in the visualizations.

Must be enabled with --enable-postproc-visualizer during
configuration time.

Change-Id: Ia74f357ddc3ad4fb8082afd3a64f62384e4fcb2d
2010-11-10 14:14:46 -08:00
Paul Wilkins
513f8e6814 Relax rate control for last few frames
VBR rate control can become very noisy for the last few frames.
If there are a few bits to spare or a small overshoot then the
target rate and hence quantizer may start to fluctuate wildly.

This patch prevents further adjustment of the active Q limits for
the last few frames.

Patch also removes some redundant variables and makes one small bug fix.

Change-Id: Ic167831bec79acc9f0d7e4698bcc4bb188840c45
2010-11-10 10:09:45 +00:00
Paul Wilkins
6adbe09058 Tuning for the more exact quantizer.
Small changes to the default zero bin and rounding tables.
Though the tables are currently the same for the Y1 and Y2 cases
I have left them as separate tables in case we want to tune this later.

There is now some adjustment of the zbin based on the prediction mode.
Previously this was restricted to an adjustment for gf/arf 0,0 MV.

The exact quantizer now marginal outperforms and is the default.

The overall average gain is about 0.5%

Change-Id: I5e4353f3d5326dde4e86823684b236a1e9ea7f47
2010-11-10 09:52:58 +00:00
John Koleszar
3a99784b5e Merge remote branch 'origin/master' into experimental 2010-11-10 00:05:06 -05:00
John Koleszar
cac05c832e Merge remote branch 'internal/upstream' into HEAD 2010-11-10 00:05:05 -05:00
John Koleszar
458f4fedd2 Merge "improve average framerate calculation" 2010-11-09 08:52:16 -08:00