- 23 Jul, 2010 - 3 commits
-
-
Paul Wilkins authored
In two pass encodes, the calculation of the number of bits allocated to a KF group had the potential to overflow for high data rates if the interval is very long. We observed the problem in one test clip where there was one section where there was an 8000 frame gap between key frames. Change-Id: Ic48eb86271775d7573b4afd166b567b64f25b787
-
Timothy B. Terriberry authored
This replaces the approximate division-by-multiplication in the quantizer with an exact one that costs just one add and one shift extra. The asm versions have not been updated in this patch, and thus have been disabled, since the new method requires different multipliers which are not compatible with the old method. Change-Id: I53ac887af0f969d906e464c88b1f4be69c6b1206
-
Paul Wilkins authored
Tweaked table to fit to 80 characters. Change-Id: Ie6ba80e0b31b33e23d2bf78599abe223369fcefb
-
- 19 Jul, 2010 - 2 commits
-
-
Paul Wilkins authored
Change submitted for Adrian Grange. Convert threshold calculation in ARNR filter to a lookup table. Change-Id: I12a4bbb96b9ce6231ce2a6ecc2d295610d49e7ec
-
Paul Wilkins authored
Previously we had assumed that it was necessary to give a full frame's bit allocation to the alt ref frame if it has been created through temporal filtering. This is not the case. The active max quantizer control insures that sufficient bits are allocated if needed and allocating a full frame's worth of bits creates an excessive overhead for the ARF. Change-Id: I83c95ed7bc7ce0e53ccae6ff32db5a97f145937a
-
- 16 Jul, 2010 - 1 commit
-
-
Paul Wilkins authored
Change-Id: I37f10fbe4fbb505c1d34980a59af3e817c287e22
-
- 07 Jul, 2010 - 1 commit
-
-
Yaowu Xu authored
The issue was caused by a bad merge in Change I5559d1e8 Change-Id: I6563f652bc1500202de361f8f51d11cc6ddf3331
-
- 01 Jul, 2010 - 1 commit
-
-
Adrian Grange authored
In the case where the best reference mv is not (0,0) a secondary search is carried out centered on (0,0). However, rather than sending tmp_err into the search function, motion_error was inadvertently passed. As a result tmp_err remains set at INT_MAX and the (0,0)-based search result will never be selected, even if it is better. Change-Id: I3c82b246c8c82ba887b9d3fb4c9e0a0f2fe5a76c
-
- 29 Jun, 2010 - 2 commits
-
-
Paul Wilkins authored
Following conversations with Tim T (Derf) I ran a large number of tests comparing the existing polynomial expression with a simpler ^2 variant. Though the polynomial was sometimes a little better at the extremes of Q it was possible to get close for most clips and even a little better on some. This code also changes the way the RD multiplier is calculated when the ZBIN is extended to use a variant of the same ^2 expression. I hope that this simpler expression will be easier to tune further as we expand our test set and consider adjustments based on content. Change-Id: I73b2564346e74d1332c33e2c1964ae093437456c
-
Yaowu Xu authored
Besides the slight improvement in round trip error. This also fixes a sign bias in the forward transform, so the round trip errors are evenly distributed between +1s and -1s. The old bias seemed to work well with the dc sign bias in old fdct, which no longer exist in the improved fdct. Change-Id: I8635e7be16c69e69a8669eca5438550d23089cef
-
- 28 Jun, 2010 - 1 commit
-
-
Adrian Grange authored
Corrected setting of "which_buffer" for U & V cases to match that used for Y, i.e. to refer to the temporally most recent frame of those to be filtered. Change-Id: Idf94b287ef47a05f060da3e61134a0b616adcb6b
-
- 24 Jun, 2010 - 4 commits
-
-
Scott LaVarnway authored
Change-Id: Ib479210067510162879c368428b92690591120b2
-
Yaowu Xu authored
The new fdct lowers the round trip sum squared error for a 4x4 block ~0.12. or ~0.008/pixel. For reference, the old matrix multiply version has average round trip error 1.46 for a 4x4 block. Thanks to "derf" for his suggestions and references. Change-Id: I5559d1e81d333b319404ab16b336b739f87afc79
-
Fritz Koenig authored
bestsad needs to be a int and set to INT_MAX because at the end of the function it is compared to INT_MAX to determine if there was a match in the function. Change-Id: Ie80e88e4c4bb4a1ff9446079b794d14d5a219788
-
Fritz Koenig authored
bestsad should be an int initialized to INT_MAX. The optimized SAD function expects a signed value for bestsad to use for comparison and early loop termination. When no match is made, which is determined by a comparison of bestsad to INT_MAX, INT_MAX is returned.
-
- 21 Jun, 2010 - 3 commits
-
-
agrange authored
1. Unavailability of each reference frame type should be tested independently, 2. Also, only the VP8_GOLD_FLAG needs to be tested before setting golden frame specific thresholds, and only VP8_ALT_FLAG needs testing before setting thresholds relevant to the AltRef frame. (Raised by gbvalor, in response to Issue 47) Change-Id: I6a06fc2a6592841d85422bc1661e33349bb6c3b8
-
agrange authored
Since the intent is to reset the appropriate bit in ref_frame_flags not to test a logic condition. Prior result would always have been ref_frame_flags being set to 0. (Issue reported by dgohman, issue 47) Change-Id: I2c12502ed74c73cf38e98c9680e0249c29e16433
-
agrange authored
The DOUBLE_DIVIDE_CHECK macro prevents from divide by 0, so must be on the denominator to work as intended. Change-Id: Ie109242d52dbb9a2c4bc1e11890fa51b5f87ffc7
-
- 18 Jun, 2010 - 2 commits
-
-
Jim Bankoski authored
Remove a couple instructions from this function which weren't necessary for correct execution. Change-Id: Ib649674f140689f7e5c1530c35686241688a3151
-
John Koleszar authored
When the license headers were updated, they accidentally contained trailing whitespace, so unfortunately we have to touch all the files again. Change-Id: I236c05fade06589e417179c0444cb39b09e4200d
-
- 14 Jun, 2010 - 2 commits
-
-
Guillermo Ballester Valor authored
Change-Id: I2a97f08cc3c7808ce5be39e910cc5147ecf03a1d
-
Scott LaVarnway authored
Added sse2 version of vp8_regular_quantize_b which improved encode performance(for the clip used) by ~10% for 32 bit builds and ~3% for 64 bit builds. Also updated SHADOW_ARGS_TO_STACK to allow for more than 9 arguments. Change-Id: I62f78eabc8040b39f3ffdf21be175811e96b39af
-
- 12 Jun, 2010 - 1 commit
-
-
John Koleszar authored
This patch addresses issue #79, which is a regression since commit 28de670c "Fix RD bug." If the coded error value is zero, the iiratio calculation effectively multiplies by 1000000 by the DOUBLE_DIVIDE_CHECK macro. This can result in a value larger than INT_MAX, giving a negative ratio. Since the error values are conceptually unsigned (though they're stored in a double) this patch makes the iiratio values unsigned, which allows the clamping to work as expected.
-
- 11 Jun, 2010 - 2 commits
-
-
John Koleszar authored
Typo caused C version of 16x16x4 SAD to be called when built with --disable-runtime-cpu-detect. Change-Id: I0fe6fa67280b3a5f13acb3c8ed914f039aaaf316
-
Paul Wilkins authored
low and high Q ends.
-
- 10 Jun, 2010 - 1 commit
-
-
Paul Wilkins authored
-
- 08 Jun, 2010 - 3 commits
-
-
Yaowu Xu authored
Change-Id: I7ccc580410bea096a70dce0cc3d455348d4287c5
-
Yaowu Xu authored
Change-Id: I180a05ad57ee6164a6a169ee08e8affd09671eee
-
Paul Wilkins authored
-
- 07 Jun, 2010 - 2 commits
-
-
Paul Wilkins authored
-
Yaowu Xu authored
Change-Id: I944035e720ef834561a9da0d723879a4f787312c
-
- 04 Jun, 2010 - 1 commit
-
-
John Koleszar authored
Change-Id: Ieebea089095d9073b3a94932791099f614ce120c
-
- 28 May, 2010 - 1 commit
-
-
Yaowu Xu authored
Change-ID: I093abe6094589a0d73f6ca85b825678a19e68285
-
- 25 May, 2010 - 2 commits
-
-
Paul Wilkins authored
is constructed from multiple source frames Change-Id: I2e026c10d02b071b401c9fe8ab8dcfc0ac306103
-
John Koleszar authored
This renames the vpx_codec/ directory to vpx/, to allow applications to more consistently reference these includes with the vpx/ prefix. This allows the includes to be installed in /usr/local/include/vpx rather than polluting the system includes directory with an excessive number of includes. Change-Id: I7b0652a20543d93f38f421c60b0bbccde4d61b4f
-
- 24 May, 2010 - 1 commit
-
-
Yunqing Wang authored
-
- 20 May, 2010 - 1 commit
-
-
Paul Wilkins authored
-
- 19 May, 2010 - 2 commits
-
-
Yaowu Xu authored
Visual c++ compiler uses xmm registers for floating point operations for 64 bit architecture, therefore its calling convention requires the preservation of xmm6-xmm15 in any function that have used these registers. However, the sse2 functions, that were originally written for 32 bit windows, may have used xmm6 and xmm7 without preserving the content. In this particular case, the compiler used xmm6 to save the variable "two_pass_min_rate", the value of the variable is mucked up by our sse2 optimized loop filter functions, hence the results of release/debug mismatching.
-
Pavol Rusnak authored
-
- 18 May, 2010 - 1 commit
-
-
John Koleszar authored
-