- 29 Feb, 2012 3 commits
-
-
Ronald S. Bultje authored
Change-Id: Ibcd2b9b247ff9f83331dac47f91ec285e8955ff1
-
Ronald S. Bultje authored
Also remove duplicate build_intra_predictors_mby/uv(). Change-Id: I78607e7304952a9b962a5b25af9bb9c48692187b
-
Yaowu Xu authored
The commit fixed a problem where 8x8 regular quantizer was using the 4x4 zbinboost lookup table that only has 16 entries at each Q. The commit assigned a uniform zbin boost value for all cases that there are more than 16 consective zeros. The change only affects MBs using 8x8 transform. The fix has a slightly positive impact on quality. Test results: http://www.corp.google.com/~yaowu/no_crawl/hd_fixzbinb.html (avg psnr: .26% glb psnr: .21% ssim: .28%) Results on cif size clip are also positive even though gain is smaller http://www.corp.google.com/~yaowu/no_crawl/derf_fixzbinb.html Change-Id: Ibe8f6da181d1fb377fbd0d3b5feb15be0cfa2017
-
- 28 Feb, 2012 6 commits
-
-
Deb Mukherjee authored
This is the first patch for refactoring of the code related to high-precision mv, so that 1/4 and 1/8 pel motion vectors can co-exist in the same bit-stream by use of a frame level flag. The current patch works fine for only use of 1/4th and only use of 1/8th pel mv, but there are some issues with the mode switching in between. Subsequent patches on this change Id will fix the remaining issues. Patch 2: Adds fixes to make sure that multiple mv precisions can co-exist in the bit-stream. Frame level switching has been tested to work correctly. Patch 3: Fixes lines exceeding 80 char Patch 4: http://www.corp.google.com/~debargha/vp8_results/enhinterp.html Results on derf after ssse3 bugfix, compared to everything enabled but the 8-tap, 1/8-subpel and 1/16-subpel uv. Overall the gains are about 3% now. Hopefully there are no more bugs lingering. Apparently the sse3 bug affected the quartel subpel results more than the eighth pel ones (which is understandabale because one bad predictor due to the bug, matters less if there are a lot more subpel options available as in the 1/8 subpel case). The results in the 4th column correspond to the current settings. The first two columns correspond to two settings of adaptive switching of the 1/4 or 1/8 subpel mode based on initial Q estimate. These do not work as good as just using 1/8 all the time yet. Change-Id: I3ef392ad338329f4d68a85257a49f2b14f3af472
-
Paul Wilkins authored
Merge of the NEWLPF configuration experiment so it is always on. Change-Id: I7054772b6eab28bad1ff807bfa54d98f83de9308
-
Yaowu Xu authored
The commit overall on derf test is break even to very slightly positive comparing to all 4x4 transform. Change-Id: I2a7c19599aa54c2d3a5b35db0dc891ba8a6a2b26
-
Paul Wilkins authored
Removal of some further code relating to partitions and error resilience. Spelling correction. Change-Id: I36067aae67a4a23bec359541dda3400b0bbf26d0
-
Paul Wilkins authored
Removal of code relating to token partitioning Change-Id: Iaf3c88d6758639a55bd92c3be5c51e6bed407a3c
-
Yaowu Xu authored
The "update" variable was used as a flag in coef_prob update dry run that tests if a frame should encodes update at all. The wrong init value forced the update happening always. fixing this has a minor improvement in low bit rate situation when 8x8 transform is allowed. Change-Id: Icb498e8d6a62fd074dcbc2065b797cba9237cb51
-
- 27 Feb, 2012 1 commit
-
-
Paul Wilkins authored
Apparently the correct spelling of segement is segment ! Change-Id: I88593ee0523f251b3a96794c6166ef8c7898a029
-
- 26 Feb, 2012 1 commit
-
-
Paul Wilkins authored
Removal of error_resilient_mode features. The interface has been left in place but does nothing. Change-Id: I2407863bd0d3c98407354507423ca48d29f63b17
-
- 25 Feb, 2012 2 commits
-
-
Paul Wilkins authored
For now the interface elements have been left in place to make sure existing parameter files work but parameters relating to drop frame wont do anything. Change-Id: I579ee614726387381c546845dac4bc03c74c6a07
-
Deb Mukherjee authored
Fixes a bug that was introduced in the high precision mv patch. Change-Id: Ieadb433ebe4c3ef3e0e63944dab11528bf8bd73a
-
- 24 Feb, 2012 4 commits
-
-
Paul Wilkins authored
Removal of code relating to spatial re sampling Change-Id: Iff1bc651c62cd528f960c4b27f9673b172e68835
-
Paul Wilkins authored
Change-Id: Ifdb17b56090a317b2aa82cf125d57934902c5298
-
Deb Mukherjee authored
The Lagrangian interpolation filter is maximally flat in the passband. There is non-trivial improvement with the hd set, while for derf the results are virtually unchanged. See: http://www.corp.google.com/~debargha/vp8_results/enhinterpn.html (derf) http://www.corp.google.com/~debargha/vp8_results/enhinterpn_hd.html (HD) Patch 2: Updated the results for derf in the html above to use the new baseline. There is still about 4% improvement. Will update the hd baseline later (since it takes 9 hours to run on my machine) Patch 3: By mistake the default filter was left at 60 - should be 0 to use the new interpolation filter. Change-Id: If5f64444976562415d68a2aeabb94fdfa0d47890
-
Paul Wilkins authored
Removed redundant code for ref frame cost.
-
- 23 Feb, 2012 2 commits
-
-
Deb Mukherjee authored
* Removes EDGE_PIXEL_FILTER for external sanpshot * changes the default 8-tap filter based on high precision results in http://www.corp.google.com/~debargha/vp8_results/enhinterpn.html * changes the default prob tables for high-precision mv encoding to favor zeros in the last bit (i.e. quarter pel). This is only important for short clips. Change-Id: I02bb0de8679d9eec06cdbcc8160dbf073cd847a4
-
Deb Mukherjee authored
This is the initial patch for supporting 1/8th pel motion. Currently if we configure with enable-high-precision-mv, all motion vectors would default to 1/8 pel. Encode and decode syncs fine with the current code. In the next phase the code will be refactored so that we can choose the 1/8 pel mode adaptively at a frame/segment/mb level. Derf results: http://www.corp.google.com/~debargha/vp8_results/enhinterp_hpmv.html (about 0.83% better than 8-tap interpoaltion) Patch 3: Rebased. Also adding 1/16th pel interpolation for U and V Patch 4: HD results. http://www.corp.google.com/~debargha/vp8_results/enhinterp_hd_hpmv.html Seems impressive (unless I am doing something wrong). Patch 5: Added mmx/sse for bilateral filtering, as well as enforced use of c-versions of subpel filters with 8-taps and 1/16th pel; Also redesigned the 8-tap filters to reduce the cut-off in order to introduce a denoising effect. There is a new configure option sixteenth-subpel-uv which will use 1/16 th pel interpolation for uv, if the motion vectors have 1/8 pel accuracy. With the fixes the results are promising on the derf set. The enhanced interpolation option with 8-taps alone gives 3% improvement over thei derf set: http://www.corp.google.com/~debargha/vp8_results/enhinterpn.html Results on high precision mv and on the hd set are to follow. Patch 6: Adding a missing condition for CONFIG_SIXTEENTH_SUBPEL_UV in vp8/common/x86/x86_systemdependent.c Patch 7: Cleaning up various debug messages. Patch 8: Merge conflict Change-Id: I5b1d844457aefd7414a9e4e0e06c6ed38fd8cc04
-
- 22 Feb, 2012 1 commit
-
-
Yaowu Xu authored
Yunqing fixed an oddity in UVIntra skippable evaluation for stable branch, which brought up the fact that the evaluation is broken. The issue was that for MBs with 2nd order block, the eob for 1st order blocks is set at 1. The previous evaluation did not take that into account. This commit intend to fix the problem. The commit also absorbed Yunqing's fix for UVIntra skippable evalution. Test on hd showed some good gains in combination with LPF bias fix: http://www.corp.google.com/~yaowu/no_crawl/LPFBias_FixSkip.html (avg psnr: .34%, glb psnr: .32%, ssim: .22%) Change-Id: I36af11c8ef7f643e8ff46da7bf3a167b437039d4
-
- 18 Feb, 2012 1 commit
-
-
Yaowu Xu authored
The bias in picklpf intended to bias toward less greedy in getting best frame level psnr while maximize overall quality for a clip. This commit reduced the bias for frames using 8x8 transform to achieve better compression overall. The change improve compression by ~.15% consistently on most of the HD clips tested. http://www.corp.google.com/~yaowu/no_crawl/LPFBias_FixSkip.html Change-Id: Ic30932d2b8eaebd52339b0195f569edc48eed7bc
-
- 17 Feb, 2012 1 commit
-
-
Paul Wilkins authored
Removal of most code to do with 1 pass. Removal of cyclic refresh code. Change-Id: I74971082bc19dd76e795d4d2e781a0424cec5c8c
-
- 16 Feb, 2012 10 commits
-
-
Yaowu Xu authored
Removed some transform code that is not in use. Change-Id: I9489af7e23d9d7fe052feb6c8bbafa62ebbda39c
-
Yaowu Xu authored
The commit rationized and simplified the entropy context conversion betwen MB using 8x8 transform and MB using 4x4 transform. The old version had a number of weirdness in how 4x4 transform MB's context is used for 8x8 blocks other than the first 8x8 within a MB. Test showed the change has a gain ~.1% for avg psnr, glb psnr and ssim on the limited HD set. Change-Id: I774536c416baa6845aa741f956d8a69fa40e5d47
-
Deb Mukherjee authored
Change-Id: I7549e424ca6846b07a796f2b9cd4e9d4e550ca9b
-
Paul Wilkins authored
Removal of the pickinter.c and .h files and calls to this code. Removal of some code relating to real time and one pass settings though there is more to be done in this regard. However, vp8_set_speed_features() now only supports modes 0 and 1 and speeds up to 3 so rd should always be set. Change-Id: I62c0c1b6154ab499785baef310536080e87bc4d8
-
Yaowu Xu authored
this commit changed the UV r/d calculation in the mode decision process to properly account for the rate of 8x8 transform coefficients. Change-Id: I485f8f35f2b61db0b6539beb32e83481b1cf083b
-
Yaowu Xu authored
the changes are still temporary, the final transforms, especially inverse ones should take in account both accuracy, complexity, and sign-bias, which should be decided at a later time. Change-Id: I116b0c70b25f5ee324ae5713d4564f5d0aa27151
-
Yaowu Xu authored
During the work of extend_qrange, we have rolled a factor of 2 from quantization/dequatnization into 2nd order walsh-hadamard transform. This commit does the same for the 2nd order haar transform. so they can share the same quantizaiton process as the 2nd order WHT. Change-Id: I734af4a20ea8149a01b5b1971a065092977dfe33
-
Yaowu Xu authored
Previously, the scaling related to extended quantize range happens in dequantization stage, which implies the coefficients form forward transform are in different scale(4x) from dequantization coefficients This worked fine when there was not distortion computation done based on 8x8 transform, but it completely wracked the distortion estimation based on transform coefficients and dequantized transform coefficients introduced in commit f64725a0 for macroblocks using 8x8 transform. This commit fixed the issue by moving the scaling into the stage of inverse 8x8 transform. TODO: Test&Verify the transform/quantization pipeline accuracy. Change-Id: Iff77b36a965c2a6b247e59b9c59df93eba5d60e2
-
Deb Mukherjee authored
Results with the new filter coefficients compared with the previous versions are here: http://www.corp.google.com/~debargha/vp8_results/enhinterp.html (derf) http://www.corp.google.com/~debargha/vp8_results/enhinterp_hd.html (HD) Overall, the derf set improves by 0.94% with 8-tap filters while the HD set improves by 0.58%. Patch 1: resolving merge conflict Change-Id: I09db0abdab7b08bb19f86d911de23d2123309748
-
Ronald S. Bultje authored
I'm basically not convinced that the concept works at all, let alone that this is the right place to do it. I think if we want something like this at all, I should integrate it with the main encoding loop and re-encode checks in onyx_if.c, and show that it has a significant benefit (which right now, it doesn't; removing this re-encode check actually increases all metrics by ~0.15%). Change-Id: I1b597385dc17f468384a994484fb24813389411f
-
- 15 Feb, 2012 3 commits
-
-
Ronald S. Bultje authored
Change-Id: I265ad46e01a307bca21e6223725e4055f5e08648
-
Paul Wilkins authored
Remove error concealment code. Change-Id: I882705174fbfea212e96f7f684e47a671dbe5c67
-
Yaowu Xu authored
This commit moved segment based loop filter level selection into the experiment of CONFIG_FEATUREUPDATES. As previous commit noted, the segment based loop filter selection helps the compression by ~0.1% on cif set, the ongoing experiment CONFIG_FEATUREUPDATES made encoding updates of the segment based LPF level more efficient, hence, another .04% gain on cif set. The commit also fixed an issue previously where encoder/decoder may use different loop filter level for one of the segments. Change-Id: Ia978b14aae95bb107d561ba53a7a2bb6ff01faf3
-
- 14 Feb, 2012 2 commits
-
-
Yaowu Xu authored
This commmit added logic for MB using dual-pred to compute rate estimation based on correct transform size. The section of code was previously located under #if CONFIG_DUALPRED, that was made to be working with T8x8 experiment at the same time. Change-Id: Iebc2518c03f11378b9c2e72905520f088b54d5c0
-
Paul Wilkins authored
Removed ~CONFIG_REALTIME_ONLY code. Change-Id: I5fafff29a08acd8928699f9ddce8744787024d8c
-
- 13 Feb, 2012 3 commits
-
-
Jim Bankoski authored
Added a bit to signify that the feature changed since the last time we sent it, or not so that we don't need to send all the databits for every feature change. added config Change-Id: I8d3064ce90d4500bf0d5c6b87c664e46138dfcac
-
Yaowu Xu authored
Added a frame level flag to indicate if coef probabilities are updated at all for the frame. During the experimental work with 8x8 transform, it is discovered that even in the case of no probability is ever update, cost of transmitting "no update" for each of probabilities can run up to become a significant overhead cost. A single bit to indicate no-update for all coef probs is therefore helpful, which is also demonstrated by the test results: 1. On Cif set: http://www.corp.google.com/~yaowu/no_crawl/t8x8/cif_t8x8_updprob.html (avg psnr: .14%, glb psnr: .14% SSIM: .13%) 2. On HD set: http://www.corp.google.com/~yaowu/no_crawl/t8x8/HD_t8x8_updprob.html (avg psnr: .02% glb psnr: .01% SSIM: .02%) It should be noted that the gain on HD is smaller because the average bit rate is much higher in contrast to the overhead bit cost. Change-Id: I46db270e693ee8799fef34a14d8260868ce4cd16
-
Paul Wilkins authored
SE_LVL_EOB => SEG_LVL_EOB Change-Id: I6d10169878a709bc9b82f03e5d5903c629fa7679
-