- 28 Feb, 2013 1 commit
-
-
John Koleszar authored
The ABOVESPREFMV experiment uses four pixels to the left of the current block, which don't exist for the left-most column. Change-Id: I4cf0b42ae8f54c0b3e7b1ed8755704b74fafc39c
-
- 05 Feb, 2013 2 commits
-
-
John Koleszar authored
Update the code to call the new convolution functions to do subpixel prediction rather than the existing functions. Remove the old C and assembly code, since it is unused. This causes a 50% performance reduction on the decoder, but that will be resolved when the asm for the new functions is available. There is no consensus for whether 6-tap or 2-tap predictors will be supported in the final codec, so these filters are implemented in terms of the 8-tap code, so that quality testing of these modes can continue. Implementing the lower complexity algorithms is a simple exercise, should it be necessary. This code produces slightly better results in the EIGHTTAP_SMOOTH case, since the filter is now applied in only one direction when the subpel motion is only in one direction. Like the previous code, the filtering is skipped entirely on full-pel MVs. This combination seems to give the best quality gains, but this may be indicative of a bug in the encoder's filter selection, since the encoder could achieve the result of skipping the filtering on full-pel by selecting one of the other filters. This should be revisited. Quality gains on derf positive on almost all clips. The only clip that seemed to be hurt at all datarates was football (-0.115% PSNR average, -0.587% min). Overall averages 0.375% PSNR, 0.347% SSIM. Change-Id: I7d469716091b1d89b4b08adde5863999319d69ff
-
Paul Wilkins authored
This commit makes the NearestMV match the chosen best reference MV. It can be a 0,0 or non zero vector which means the the compound nearest mv mode can combine a 0,0 and a non zero vector. Change-Id: I2213d09996ae2916e53e6458d7d110350dcffd7a
-
- 24 Jan, 2013 1 commit
-
-
Deb Mukherjee authored
Adds an error-resilient mode where frames can be continued to be decoded even when there are errors (due to network losses) on a prior frame. Specifically, backward updates are turned off and probabilities of various symbols are reset to defaults at the beginning of each frame. Further, the last frame's mvs are not used for the mv reference list, and the sorting of the initial list based on search on previous frames is turned off as well. Also adds a test where an arbitrary set of frames are skipped from decoding to simulate errors. The test verifies (1) that if the error frames are droppable - i.e. frame buffer updates have been turned off - there are no mismatch errors for the remaining frames after the error frames; and (2) if the error-frames are non droppable, there are not only no decoding errors but the mismatch PSNR between the decoder's version of the post-error frames and the encoder's version is at least 20 dB. Change-Id: Ie6e2bcd436b1e8643270356d3a930e8989ff52a5
-
- 14 Jan, 2013 2 commits
- 10 Jan, 2013 1 commit
-
-
Ronald S. Bultje authored
Change-Id: If6c88752dffdb566f8d4322f135145270716fb8e
-
- 08 Jan, 2013 2 commits
-
-
Ronald S. Bultje authored
Change-Id: I0df99742029834a85c4933652b0587cf5b6b2587
-
Yunqing Wang authored
About 5% decoder speedup. Change-Id: Ib6687d337af758a536a0e7e289f400990f1f9794
-
- 06 Jan, 2013 1 commit
-
-
Ronald S. Bultje authored
3.2% gains on std/hd, 1.0% gains on hd. Change-Id: I481d5df23d8a4fc650a5bcba956554490b2bd200
-
- 18 Dec, 2012 1 commit
-
-
Ronald S. Bultje authored
For coefficients, use int16_t (instead of short); for pixel values in 16-bit intermediates, use uint16_t (instead of unsigned short); for all others, use uint8_t (instead of unsigned char). Change-Id: I3619cd9abf106c3742eccc2e2f5e89a62774f7da
-
- 10 Dec, 2012 1 commit
-
-
Paul Wilkins authored
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
-
- 05 Dec, 2012 1 commit
-
-
Paul Wilkins authored
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
-
- 29 Nov, 2012 1 commit
-
-
Jim Bankoski authored
clears up some warnings Change-Id: I9899637497c6ad7519f098e055ab98580ae6d688
-
- 28 Nov, 2012 1 commit
-
-
Jim Bankoski authored
Change-Id: Ia1cce221f8511561b9cbd8edb7726fbc286ff243
-
- 27 Nov, 2012 1 commit
-
-
John Koleszar authored
Support for gyp which doesn't support multiple objects in the same static library having the same basename. Change-Id: Ib947eefbaf68f8b177a796d23f875ccdfa6bc9dc
-
- 26 Nov, 2012 1 commit
-
-
Yunqing Wang authored
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
-
- 15 Nov, 2012 1 commit
-
-
Yaowu Xu authored
duplicate code clean-up and variable name corrections Change-Id: Ibc4703228e652ec425125de5e7bc038fa46595c5
-
- 13 Nov, 2012 2 commits
-
-
Yaowu Xu authored
Change-Id: I7b6f27826052eb706fc6080d4e3a940dff7d3a58
-
Ronald S. Bultje authored
Change-Id: I417e39867c020a17d85370972446a8ce2bbe9a6d
-
- 12 Nov, 2012 1 commit
-
-
Paul Wilkins authored
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
-
- 10 Nov, 2012 1 commit
-
-
Deb Mukherjee authored
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
-
- 07 Nov, 2012 2 commits
-
-
Yaowu Xu authored
Change-Id: Ib39ad47a7d188f3b45416937b7eeb28c3e79b74c
-
James Zern authored
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: 16982342 Missed some variance casts fea3556e Fix variance overflow Change-Id: I2c61856cca9db54b9b81de83b4505ea81a050a0f
-
- 06 Nov, 2012 1 commit
-
-
Yaowu Xu authored
Change-Id: Iedaa108ddb65f54d768424f9c47ad4d069b656fd
-
- 01 Nov, 2012 2 commits
-
-
Ronald S. Bultje authored
Change-Id: Ic084c475844b24092a433ab88138cf58af3abbe4
-
Ronald S. Bultje authored
For non-static functions, change the prefix to vp9_. For static functions, remove the prefix. Also fix some comments, remove unused code or unused function prototypes. Change-Id: I1f8be05362f66060fe421c3d4c9a906fdf835de5
-
- 31 Oct, 2012 3 commits
-
-
Ronald S. Bultje authored
This change encompasses VP8_PTR, VP8_COMP, VP8D_COMP, VP8_COMMON, VP8Decompressor and VP8Common. Change-Id: I514ef4ad4e682370f36d656af1c09ee20da216ad
-
Ronald S. Bultje authored
For local symbols, make them static instead. Change-Id: I13d60947a46f711bc8991e16100cea2a13e3a22e
-
Ronald S. Bultje authored
Change-Id: Ic5a5f60e1ff9d9ccae4174160d36529466eeb509
-
- 30 Oct, 2012 1 commit
-
-
Yaowu Xu authored
As suggested by Paul, this commit separate the subpel refmv selection into a separate experiment. It also changed a couple variable names to better reflect the nature of the variables. Change-Id: Id951c3cadc61a982dd15afe641000f60213b8995
-
- 29 Oct, 2012 1 commit
-
-
Yaowu Xu authored
Previously, in evaluating reference motion vectors, MVs are always rounded to integer pixel position and SADs are calculated. This commit takes into account the subpixel portion of the mvs, and uses bilinear interpolation to produce reference pixel values in subpixel postions. In addition, SSE is used in place of SAD. Pixels used are 16x2 above and 2x16 to the left. This commmit intends to test the potential of this line of work in term of compression improvement, obviously, the change would increase decoder complexity significantly. Test results std-hd: 1.738%(avg) 1.779%(glb), 1.663%(ssim) derf: 0.472%(avg) 0.477%(glb), 0.418%(ssim) Change-Id: I3ae1b098f6289df78891134d9a5e4bb2fde87a0b
-
- 26 Oct, 2012 1 commit
-
-
Paul Wilkins authored
Coding and costing of mv reference signal. Issues in updating MV ref with COMPANDED_MVREF_THRESH to be resolved. Ideally the MV precision should be defined based on absolute MV magnitude not as now the MV ref magnitude. Update to mv counts moved into bitstream.c because otherwise if the motion reference is changed at the last minute the encoder and decoder get out of step in terms of the counts used to update entropy probs. Code working on a few test clips but no results yet re benefit vs signaling cost and no tuning of red loop to test lower cost alternatives based on the available reference values. Patch 3. Added check to make sure we don't pick a reference that would give rise to an uncodeable / out of range residual. Patch 6-7: Attempt to rebase. OK to submit but best to leave flag off for now. Patch 9. Remove print no longer needed. Change-Id: I1938c2ffe41afe6d3cf6ccc0cb2c5d404809a712
-
- 22 Oct, 2012 3 commits
-
-
Deb Mukherjee authored
Removes the old mv encoding code. Change-Id: I1026d48cc5ac15ccb776f98463e929254c3dc7da
-
Yaowu Xu authored
The previous double if and else code snippets were rather confusing. Change-Id: Id1b6152fa0e471beb9b20407aa406e109c1471e3
-
Scott LaVarnway authored
Change-Id: I5bca7b7a4b230082d36ac6fb84db84137ad177d7
-
- 15 Oct, 2012 1 commit
-
-
Yaowu Xu authored
The commit changed to avoid using pixels from extended border in in evaluating and select best reference motion vector. Change-Id: I39b758889373e42ed2889d59744388e5b9c1a20a
-
- 14 Sep, 2012 1 commit
-
-
Yaowu Xu authored
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
-
- 12 Sep, 2012 1 commit
-
-
Deb Mukherjee authored
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
-
- 07 Sep, 2012 1 commit
-
-
Paul Wilkins authored
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
-