- 09 Jan, 2017 1 commit
-
-
Debargha Mukherjee authored
Change-Id: I56e741551f74624a84250d7565520db9c5127d1b
-
- 07 Jan, 2017 2 commits
-
-
David Barker authored
* Change the behaviour of search_wiener at borders to match the behaviour of the Wiener filter itself * Reorder the calculation in compute_stats, saving ~5% of encode time at low bitrates (tested on bus_cif.y4m at 200kbps) Change-Id: I5f649d77fd66584451aaf37697ce9c9af69524e4
-
David Barker authored
* Optimize the self-guided and domaintxfmrf filters * Save 576KiB of buffers in the encoder and decoder * Disable self-guided filter for videos whose width or height is < 5, in order to help simplify the filter. This results in an overall 30-40% improvement in decoder speed with loop-restoration enabled (depending on source and bitate), with no effect on video quality, *except* for videos with width or height < 5 pixels. Change-Id: Ide9181118ec3a63a0335338f316505b08df2d831
-
- 06 Jan, 2017 1 commit
-
-
Debargha Mukherjee authored
Enables Wiener based loop restoration only for the UV frames. The selfguided and domaintranform filters do not work very well for UV components, hence they are disabled. For each UV frame a single set of wiener parameters are sent. They are applied tile-wise, but all tiles use the same parameters. BDRATE (Global PSNR) results: ----------------------------- lowres: -1.266% (up from -0.666%, good improvement) midres: -1.815% (up from -1.792%, tiny improvement) Tiling on UV components will be explored subsequently. Change-Id: Ib5be93121c4e88e05edf3c36c46488df3cfcd1e2
-
- 04 Jan, 2017 1 commit
-
-
David Barker authored
* Remove some unused variables * Reduce need for casts by typing intermediate buffers appropriately * Avoid copying data which is never modified; use the original data instead. * Reduce number of intermediate buffers required, saving allocations of 576KiB in the decoder and ~1MiB in the encoder No effect on performance Change-Id: I55243904dd8e818fb6d43fa431903736475d23ff
-
- 03 Jan, 2017 1 commit
-
-
David Barker authored
The convolve filters generated by loop_wiener_filter_tile are not compatible with some existing convolve implementations (they can have coefficients >128, sums of (certain subsets of) coefficients >128, etc.) So we implement a new variant, which takes a filter with 128 subtracted from its central element and which adds an extra copy of the source just before clipping to a pixel (reinstating the 128 we subtracted). This should be easy to adapt from the existing convolve functions, and this patch includes SSE2 highbd and SSSE3 lowbd implementations. Change-Id: I0abf4c2915f0665c49d88fe450dbc77b783f69e1
-
- 16 Dec, 2016 3 commits
-
-
David Barker authored
This function corrected for the fact that the old bilateral and Wiener filters would not write to the outermost 3 pixels of the destination. Now that the bilateral filter has been removed and the Wiener filter has been rewritten, this is no longer necessary. No effect on performance Change-Id: I3f3b0a759bdb9ff1e2407affe963388e76a9c9e6
-
Debargha Mukherjee authored
Change-Id: I4c4300f3f565d8aecf65669b77aaa874bb73a3a0
-
Debargha Mukherjee authored
Also includes some minor renaming of macros. Change-Id: I9493cc97c6ec9c8dae8020a05a02d6f322db9a02
-
- 15 Dec, 2016 2 commits
-
-
Debargha Mukherjee authored
Includes: Some cleanups/refactoring Better buffer management. Some preps for future chrominance restoration. Change-Id: Ia264b8989b5f4a53c0764ed3e8258ddc212723fc
-
Yaowu Xu authored
This commit moves a number of large buffers from stack to heap to fix crashes due to stack overflow. Change-Id: I9d1592e4f6dbfa18a475d0fc5674f6d3632f39ed
-
- 14 Dec, 2016 3 commits
-
-
David Barker authored
The Wiener filter now uses the same convolution code as the inter predictors. Change-Id: Ia3bfbc778171eb25c6a0141426d1f69d92c17992
-
David Barker authored
This is intended to simplify hardware and multithreaded implementations. Change-Id: I6aa95b67c03b794a0f3d5cf2f65c576d05f2ca7d
-
Debargha Mukherjee authored
The parameters are optimized only on Y, so disable chrominance filtering for now. Later we can extend the syntax to have separate parameters for the chrominance, or optimize the parameters jointly over luminance and chrominance components. lowres: -0.676% (from -0.759%) becomes a little worse midres: -1.837% (from -1.520%) substantial improvement hdres: pending Change-Id: I98d71f48de98394b05fd9036de259cb43d007614
-
- 12 Dec, 2016 1 commit
-
-
Debargha Mukherjee authored
The main objective is to reduce computational complexity. The domain transform filter has an effect of edge preserving smoothing at a lower computational cost than the bilateral filter, and can be readily paralelized. A little drop in coding efficiency about 0.06% for lowres, 0.16% for midres. Change-Id: Id949406b7e5afe9b64588d130065c63a76e4f3f9
-
- 07 Dec, 2016 1 commit
-
-
Debargha Mukherjee authored
Fixes a memory issue and computes values correctly for 1x1 and 1xn or nx1 videos. This also fixes a test failure in AV1FrameSizeTestsLarge.OneByOneVideo. Change-Id: Ib5a4efd094763fb6ceb119383c11f776784f58a4
-
- 06 Dec, 2016 1 commit
-
-
Debargha Mukherjee authored
This filter is meant to replace the bilateral filter, but is currently added in addition to the bilateral filter for testing. Change-Id: Ia529701e69833d47c11b3367d5bf804eb8498079
-
- 01 Dec, 2016 2 commits
-
-
Debargha Mukherjee authored
Change-Id: Icba19c399531a6e50ab466b606b8921f9b57eae9
-
Debargha Mukherjee authored
BUG=101 Change-Id: Ie390bab10f73ba4709e5ca7acbcde0eea537eb12
-
- 10 Nov, 2016 1 commit
-
-
Debargha Mukherjee authored
BDRATE: lowres: -1.01% (up from -0.7%) midres: -1.90% (up from -1.5%) hdres: -2.11% (up from ~1.7%) Change-Id: I1fe04ec9ef90ccc4cc990e09cd45eea82c752e0c
-
- 03 Nov, 2016 1 commit
-
-
Debargha Mukherjee authored
BUG=webm:1334 Change-Id: I5886eec0a22a8cc056e1bdb493d2faf183816656
-
- 04 Oct, 2016 1 commit
-
-
Debargha Mukherjee authored
https://bugs.chromium.org/p/webm/issues/detail?id=1306 Change-Id: Icd11d373ff08954121c097728e4c7791791e223f
-
- 30 Sep, 2016 1 commit
-
- 21 Sep, 2016 1 commit
-
-
Debargha Mukherjee authored
Streamilines the functions and data structures to make it easy to add new restore options. Change-Id: Ib00638a5749e6c38c2455f3e3142b1025e6e0624
-
- 19 Sep, 2016 1 commit
-
-
Change-Id: I186e90d99cd54e66d38159b7cb55a881226b1568
-
- 17 Sep, 2016 1 commit
-
-
Debargha Mukherjee authored
Includes a major refactoring/enhancement to support tile-adaptive switchable restoration. The framework can be readily extended to add more restoration schemes in the future. Also includes various cleanups and fixes. Specifically the framework allows restoration to be conducted on tiles such that each tile can be either left unrestored, or use bilateral or wiener filtering. There is a modest improvemnt in coding efficiency (0.1 - 0.2%). Further enhancements will be added subsequently to improve coding efficiency and complexity. Change-Id: I5ebedb04785ce1ef6f324abe209e925c2d6cbe8a
-
- 15 Sep, 2016 1 commit
-
-
Change-Id: If22018f8911d9d7ee99c2127bdfcc56e42b0e2d7
-
- 07 Sep, 2016 1 commit
-
-
Debargha Mukherjee authored
Some minor adjustments to tile size and bilateral filters. About 0.1% improvement for midres and hdres, very small change for lowres. Change-Id: Ia94f68a926867dfd67da1a8795fd8de0ddd8e2d6
-
- 02 Sep, 2016 1 commit
-
-
Yaowu Xu authored
Change-Id: I2b2b70e756b7eb9611b7b33b7d5f19b3b30e0a50
-
- 01 Sep, 2016 2 commits
-
-
Yaowu Xu authored
Cherry-Picked the following commits: 0defd8f2 Changed "WebM" to "AOMedia" & "webm" to "aomedia" 54e66767 Replace "VPx" by "AVx" 5082a369 Change "Vpx" to "Avx" 7df44f17 Replace "Vp9" w/ "Av1" 967f722f Remove kVp9CodecId 828f30ce Change "Vp8" to "AOM" 030b5ffc AUTHORS regenerated 2524caee Add ref-mv experimental flag 016762be Change copyright notice to AOMedia form 81e55269 Replace vp9 w/ av1 9b94565b Add missing files fa8ca9f2 Change "vp9" to "av1" ec838b76 Convert "vp8" to "aom" 80edfa01 Change "VP9" to "AV1" d1a11fb9 Change "vp8" to "aom" 7b582513 Point to WebM test data dd1a5c8d Replace "VP8" with "AOM" ff00fc0f Change "VPX" to "AOM" 01dee0bb Change "vp10" to "av1" in source code cebe6f0c Convert "vpx" to "aom" 17b05679 rename vp10*.mk to av1_*.mk fe5f8a8a rename files vp10_* to av1_* Change-Id: I6fc3d18eb11fc171e46140c836ad5339cf6c9419
-
- 29 Aug, 2016 1 commit
-
-
Aamir Anis authored
Frame can be split into rectangular tiles for application of separate bilateral or Wiener filters per tile. Some variable names changed for better readability. Change-Id: I13ebc4d0b0baf368e524db5ce276f03ed76af9c8
-
- 12 Aug, 2016 1 commit
-
-
Change-Id: I01d8241eba3ccaf4d06c00a51df2d17c126f6f9d
-
- 29 Jul, 2016 1 commit
-
-
Yaowu Xu authored
Manually cherry-picked the following changes: 8c8d16de vp9 -> vpx in names 75b57d39 VP9_ -> VPX_ in function names 761a7088 VP9_INTERP_EXTEND -> VPX_INTERP_EXTEND 4273a52c VP9->VPX in border pixel macros 03568c31 VP9_FRAME_MARKER -> VPX_FRAME_MARKER 2334f51d VP9->VPX in fdct function names Change-Id: Icc18dbf4b416dd0fa21033b3e19ab8a47c893508
-
- 12 Feb, 2016 1 commit
-
-
Debargha Mukherjee authored
Adds a wiener filter based restoration scheme in loop which can be optionally selected instead of the bilateral filter. The LMMSE filter generated per frame is a separable symmetric 7 tap filter. Three parameters for each of horizontal and vertical filters are transmitted in the bitstream. The fourth parameter is obtained assuming the sum is normalized to 1. Also integerizes the bilateral filters, along with other refactoring necessary in order to support the new switchable restoration type framework. derflr: -0.75% BDRATE [A lot of videos still prefer bilateral, however since many frames now use the simpler separable filter, the decoding speed is much better]. Further experiments to follow, related to replacing the bilateral. Change-Id: I6b1879983d50aab7ec5647340b6aef6b22299636
-
- 05 Feb, 2016 1 commit
-
-
Yaowu Xu authored
And enabled the warning flag in configure for vp10. Change-Id: If556d6fac65755af3d6ed7fe71b8eca0ef1b1965
-
- 29 Jan, 2016 1 commit
-
-
Debargha Mukherjee authored
Change-Id: Iab517862d957f3aa2a664e9349d57bbf424febb3
-