- 19 Apr, 2013 - 1 commit
-
-
Paul Wilkins authored
As we are no longer able to sort the candidate mvrefs in both encoder and decode and given that the cost of explicit signalling has proved prohibitive, it no longer makes sense to find more than 2 candidates. This patch: Modifies and simplifies add_candidate_mv() Removes the forced addition of a 0 vector in the MAX_MV_REF_CANDIDATES-1 position (in preparation to reducing MAX_MV_REF_CANDIDATES to 2). Re-orders the addition of candidates slightly. This actually gives small gains (circa 0.2% on std-hd) A subsequent patch will remove NEW_MVREF experiment, reduce MAX_MV_REF_CANDIDATES to 2 and remove distance weights as these are implicit now in the order. Change-Id: I3dbe1a6f8a1a18b3c108257069c22a1141a207a4
-
- 15 Apr, 2013 - 1 commit
-
-
Dmitry Kovalev authored
Using regular 0 and 1 constants now. Change-Id: Ie763503cbb727847cc8f1d6506cd6f2ee607f056
-
- 11 Apr, 2013 - 1 commit
-
-
Ronald S. Bultje authored
Change-Id: I0d12f9ef9d960df0172a1377f8e5236eb6d90492
-
- 27 Mar, 2013 - 1 commit
-
-
Yaowu Xu authored
Change-Id: Ifda91d697c5970c65ce3ec1feac5562124f91782
-
- 25 Mar, 2013 - 1 commit
-
-
Dmitry Kovalev authored
Fixing function arguments alignment, reusing MIN/MAX and clamp functions. Change-Id: I87dd5a40ffb65b521b8abbf0fccf2f50552c5309
-
- 05 Mar, 2013 - 1 commit
-
-
Dmitry Kovalev authored
Removing redundant 'extern' keywords, fixing formatting and #include order, code simplification. Change-Id: I0e5fdc8009010f3f885f13b5d76859b9da511758
-
- 05 Feb, 2013 - 1 commit
-
-
Ronald S. Bultje authored
This patch adds column-based tiling. The idea is to make each tile independently decodable (after reading the common frame header) and also independendly encodable (minus within-frame cost adjustments in the RD loop) to speed-up hardware & software en/decoders if they used multi-threading. Column-based tiling has the added advantage (over other tiling methods) that it minimizes realtime use-case latency, since all threads can start encoding data as soon as the first SB-row worth of data is available to the encoder. There is some test code that does random tile ordering in the decoder, to confirm that each tile is indeed independently decodable from other tiles in the same frame. At tile edges, all contexts assume default values (i.e. 0, 0 motion vector, no coefficients, DC intra4x4 mode), and motion vector search and ordering do not cross tiles in the same frame. t log Tile independence is not maintained between frames ATM, i.e. tile 0 of frame 1 is free to use motion vect...
-
- 24 Jan, 2013 - 2 commits
-
-
Paul Wilkins authored
Quality / decode speed trade off changes. Simpler insert method without sort. Quality impact small. Change-Id: Id0c0941bc508d985405abd06a13ffe7489170b62
-
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: Ie6e2bcd436b1e8643270356d3a930e8...
-
- 08 Jan, 2013 - 1 commit
-
-
Ronald S. Bultje authored
Change-Id: I0df99742029834a85c4933652b0587cf5b6b2587
-
- 06 Jan, 2013 - 1 commit
-
-
Ronald S. Bultje authored
3.2% gains on std/hd, 1.0% gains on hd. Change-Id: I481d5df23d8a4fc650a5bcba956554490b2bd200
-
- 04 Jan, 2013 - 1 commit
-
-
Paul Wilkins authored
This experimental change reorders the search so that all possible references that match the target reference frame are tested first and these in order of distance from the current block. These will usually be the highest scoring candidates. If we do not find enough good candidates this way we try non matching cases. These will usually be lower scoring candidates. The change in order together with breakouts when we have found enough candidates should reduce the computational cost and especially reduce the number of sort operations. Quality Results: Std Hd +0.228%, Hd +0.074%, YT +0.046%, derf +0.137% This effect is probably due to the fact that more distant weak candidates are now less likely to get "promoted" over near candidates even if they are repeated. Change-Id: Iec37e77d88a48ad0ee1f315b14327a95d63f81f6
-
- 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
-
-
Deb Mukherjee authored
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
-
- 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
-
- 16 Nov, 2012 - 3 commits
-
-
Paul Wilkins authored
Experiments with a larger set of contexts and some clean up to replace magic numbers regarding the number of contexts. The starting values and rate of backwards adaption are still suspect and based on a small set of tests. Added forwards adjustment of probabilities. The net result of adding the new context and forward update is small compared to the old context from the legacy find_near function. (down a little on derf but up by a similar amount for HD) HOWEVER.... with the new context and forward update the impact of disabling the reverse update (which may be necessary in some use cases to facilitate parallel decoding) is hugely reduced. For the old context without forward update, the impact of turning off reverse update (Experiment was with SB off) was Derf - 0.9, Yt -1.89, ythd -2.75 and sthd -8.35. The impact was mainly at low data rates. With the new context and forward update enabled the impact for all the test sets was no more than 0.5-1% (again most at the low end). Change-Id: Ic751b414c8ce7f7f3ebc6f19a741d774d2b4b556
-
Yaowu Xu authored
added additional motion vectors at close neighborhood of a superblock to the list of candiate motion vectors, and removed a couple that are further away. The change helped std-hd set about .8% (all metrics) and smaller gain for derf set. Change-Id: Iaa69b98614db43420ed3fd4738d0ca5587b90045
-
Deb Mukherjee authored
A patch on compound inter-intra prediction. In compound inter-intra prediction, a new predictor for 16x16 inter coded MBs are obtained by combining a single inter predictor with a 16x16 intra predictor, in a manner that the weight varies with distance from the top/left boundary. The current search strategy is to combine the best inter mode with the best intra mode obtained independently. Results so far: derf +0.31% yt +0.32% std-hd +0.35% hd +0.42% It is conceivable that the results would improve somewhat with a more thorough search strategy where all intra modes are searched given the best mv, or even a joint search for the best mv and the best intra mode. Change-Id: I7951f1ed0d6eb31ca32ac24d120f1585bcd8d79b
-
- 12 Nov, 2012 - 2 commits
-
-
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
-
Paul Wilkins authored
Experiment to test speed trade off of reducing the extent of the ref mv search. Reducing the maximum number of tested candidates to 9 had minimal net effect on quality in any of the tests sets. Reduction to 7 has a small negative impact (worst was STD-HD at about -0.2%). This change is in response to the apparently high number of decode cycles reported in regard to mv-ref selection. Change-Id: I0e92e92e324337689358495a1ec9ccdeb23dc774
-
- 07 Nov, 2012 - 1 commit
-
-
Yaowu Xu authored
Change-Id: Ib39ad47a7d188f3b45416937b7eeb28c3e79b74c
-
- 01 Nov, 2012 - 1 commit
-
-
Ronald S. Bultje authored
Change-Id: Ic084c475844b24092a433ab88138cf58af3abbe4
-
- 29 Oct, 2012 - 1 commit
-
-
Paul Wilkins authored
Preparation for project restructuring. Added vp9_ prefix on some function names that have global scope. Added static declaration on some that dont. Change-Id: If072f78b4300e8c17cfeed82c5d17b59946dcc5e
-
- 07 Sep, 2012 - 2 commits
-
-
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
-
Paul Wilkins authored
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
-
- 24 Aug, 2012 - 1 commit
-
-
Paul Wilkins authored
Alternative strategy for finding a list of candidate motion vectors to use as reference values in mv coding and as nearest and near. Sort by sad in vp8_find_best_ref_mvs() rather than just pick the best. Allow 0,0 as a best ref option but not a nearest or near unless there are no alternatives. Encode/Decode verified on at least some clips. Some commented out experimental and stats code still in place. Gain over existing code averages about 1% on derf (alll metrics) with improvement on all clips. Other test results pending. The entropy coding of the mode (nearest/near etc) still depends upon and requires the old "findnear" code so this needs looking at and may provide room for further gains. Change-Id: I871d7cba1d1c379c4bad9bcccce1fb19c46b8247
-