- 03 Apr, 2013 1 commit
-
-
Yunqing Wang authored
Took vp9_setup_scale_factors_for_frame() out from vp9_setup_interp_filters(), so that it is only called once per frame instead of per macroblock. Decoder tests showed a 1.5% performance gain. Change-Id: I770cb09eb2140ab85132f82aed388ac0bdd3a0aa
-
- 27 Mar, 2013 2 commits
-
-
Dmitry Kovalev authored
Almost all arguments for vp9_build_inter32x32_predictors_sb and vp9_build_inter64x64_predictors_sb can be deduced from the first macroblock argument. Change-Id: I5d477a607586d05698d5b3b9b9bc03891dd3fe83
-
Dmitry Kovalev authored
Adding b_mv_pred_row and b_mv_pred_col functions, updating mi_mv_pred_row and mi_mv_pred_row functions. Change-Id: I9af068442d4474478375943cc6fce1605d6fc0a5
-
- 26 Mar, 2013 1 commit
-
-
Deb Mukherjee authored
Adds an experiment to use a weighted prediction of two INTER predictors, where the weight is one of (1/4, 3/4), (3/8, 5/8), (1/2, 1/2), (5/8, 3/8) or (3/4, 1/4), and is chosen implicitly based on consistency of the predictors to the already reconstructed pixels to the top and left of the current macroblock or superblock. Currently the weighting is not applied to SPLITMV modes, which default to the usual (1/2, 1/2) weighting. However the code is in place controlled by a macro. The same weighting is used for Y and UV components, where the weight is derived from analyzing the Y component only. Results (over compound inter-intra experiment) derf: +0.18% yt: +0.34% hd: +0.49% stdhd: +0.23% The experiment suggests bigger benefit for explicitly signaled weights. Change-Id: I5438539ff4485c5752874cd1eb078ff14bf5235a
-
- 20 Mar, 2013 1 commit
-
-
Dmitry Kovalev authored
Renaming Width to width, Height to height and Version to version in several structs and function signatures. Change-Id: I084c3f7e747cb2ce3345aff27a3dff9b13a87543
-
- 14 Mar, 2013 1 commit
-
-
John Koleszar authored
Updates the YV12_BUFFER_CONFIG structure to be crop-aware. The exiting width/height parameters are left unchanged, storing the width and height algined to a 16 byte boundary. The cropped dimensions are added as new fields. This fixes a nasty visual pulse when switching between scaled and unscaled frame dimensions due to a mismatch between the scaling ratio and the 16-byte aligned sizes. Change-Id: Id4a3f6aea6b9b9ae38bdfa1b87b7eb2cfcdd57b6
-
- 12 Mar, 2013 1 commit
-
-
John Koleszar authored
Use the uv_stride from the framebuffer rather than deriving it from the y_stride. Change-Id: I94581cb741539d094ff062b3d008235556903b8c
-
- 02 Mar, 2013 1 commit
-
-
Dmitry Kovalev authored
Change-Id: Iab0176f058045181821ded95ff1cf423af1625f9
-
- 27 Feb, 2013 3 commits
-
-
John Koleszar authored
This avoids duplicating all the filters twice. Includes fixups to the convolve routines and associated tests to make this work. Change-Id: I922f86021594e55072ddb63b42b2313605db6e00
-
John Koleszar authored
This commit updates the 4x4 prediction to consistently use the build_2x1_inter_predictor() method. That function is updated to calculate the scale offset, rather than relying on the caller to calculate it. In the case that the 2x1 prediction can not be used, the scale offset is recalculated for each 1x1 block. The idea here is that the offsets are calculated before each call to vp9_build_scaled_inter_predictor(). Change-Id: I0ac3343dd54e2846efa3c4195fcd328b709ca04d
-
John Koleszar authored
This patch allows coding frames using references of different resolution, in ZEROMV mode. For compound prediction, either reference may be scaled. To test, I use the resize_test and enable WRITE_RECON_BUFFER in vp9_onyxd_if.c. It's also useful to apply this patch to test/i420_video_source.h: --- a/test/i420_video_source.h +++ b/test/i420_video_source.h @@ -93,6 +93,7 @@ class I420VideoSource : public VideoSource { virtual void FillFrame() { // Read a frame from input_file. + if (frame_ != 3) if (fread(img_->img_data, raw_sz_, 1, input_file_) == 0) { limit_ = frame_; } This forces the frame that the resolution changes on to be coded with no motion, only scaling, and improves the quality of the result. Change-Id: I1ee75d19a437ff801192f767fd02a36bcbd1d496
-
- 26 Feb, 2013 1 commit
-
-
John Koleszar authored
Ensure that all inter prediction goes through a common code path that takes scaling into account. Removes a bunch of duplicate 1st/2nd predictor code. Also introduces a 16x8 mode for 8x8 MVs, similar to the 8x4 trick we were doing before. This has an unexpected effect with EIGHTTAP_SMOOTH, so it's disabled in that case for now. Change-Id: Ia053e823a8bc616a988a0af30452e1e75a739cba
-
- 09 Feb, 2013 1 commit
-
-
John Koleszar authored
Replace as_mv.{first, second} with a two element array, so that they can easily be processed with an index variable. Change-Id: I1e429155544d2a94a5b72a5b467c53d8b8728190
-
- 05 Feb, 2013 1 commit
-
-
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
-
- 10 Jan, 2013 1 commit
-
-
Ronald S. Bultje authored
Change-Id: If6c88752dffdb566f8d4322f135145270716fb8e
-
- 09 Jan, 2013 1 commit
-
-
Adrian Grange authored
This patch removes the old pred-filter experiment and replaces it with one that is implemented using the switchable filter framework. If the pred-filter experiment is enabled, three interopolation filters are tested during mode selection; the standard 8-tap interpolation filter, a sharp 8-tap filter and a (new) 8-tap smoothing filter. The 6-tap filter code has been preserved for now and if the enable-6tap experiment is enabled (in addition to the pred-filter experiment) the original 6-tap filter replaces the new 8-tap smooth filter in the switchable mode. The new experiment applies the prediction filter in cases of a fractional-pel motion vector. Future patches will apply the filter where the mv is pel-aligned and also to intra predicted blocks. Change-Id: I08e8cba978f2bbf3019f8413f376b8e2cd85eba4
-
- 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
-
- 26 Dec, 2012 1 commit
-
-
John Koleszar authored
Various fixups to resolve issues when building vp9-preview under the more stringent checks placed on the experimental branch. Change-Id: I21749de83552e1e75c799003f849e6a0f1a35b07
-
- 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
-
- 12 Dec, 2012 1 commit
-
-
Ronald S. Bultje authored
Add a function clip_pixel() to clip a pixel value to the [0,255] range of allowed values, and use this where-ever appropriate (e.g. prediction, reconstruction). Likewise, consistently use the recently added function clip_prob(), which calculates a binary probability in the [1,255] range. If possible, try to use get_prob() or its sister get_binary_prob() to calculate binary probabilities, for consistency. Since in some places, this means that binary probability calculations are changed (we use {255,256}*count0/(total) in a range of places, and all of these are now changed to use 256*count0+(total>>1)/total), this changes the encoding result, so this patch warrants some extensive testing. Change-Id: Ibeeff8d886496839b8e0c0ace9ccc552351f7628
-
- 01 Dec, 2012 1 commit
-
-
Deb Mukherjee authored
Adds support for compound inter-intra prediction with superblocks. Also, fixes a bug that disabled intra modes for superblocks. Change-Id: I4d711317e1bc19df8c2f32dc645429f7fff31036
-
- 29 Nov, 2012 1 commit
-
-
Jim Bankoski authored
Change-Id: Ieefd76e164ca4aa87597da0412977614ddfbacb7
-
- 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
-
- 21 Nov, 2012 1 commit
-
-
Jim Bankoski authored
Removed the rtcd subpixel invoke functions. Change-Id: I8b7618bd5813333fac66b2817bdf807616e0fb33
-
- 16 Nov, 2012 1 commit
-
-
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
-
- 13 Nov, 2012 1 commit
-
-
Ronald S. Bultje authored
Change-Id: Ia1eddb108ec463835e9de8769572d698e21bca49
-
- 02 Nov, 2012 1 commit
-
-
John Koleszar authored
Update vpx_scale from current code in master, run style transform, fix lint warnings. Change-Id: I47eadeb5b6881d448ea3728537f9b8a5b5aac78e
-
- 01 Nov, 2012 3 commits
-
-
Ronald S. Bultje authored
Change-Id: Ic084c475844b24092a433ab88138cf58af3abbe4
-
Ronald S. Bultje authored
Most of these were picked up by jenkins in the commit that changed the vp8 namespace to vp9 in common/. Change-Id: I5cbd56ffc753b92ef805133cda6acc1713a13878
-
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 2 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
Change-Id: Ic5a5f60e1ff9d9ccae4174160d36529466eeb509
-
- 23 Oct, 2012 1 commit
-
-
Deb Mukherjee authored
There is a macro DEFAULT_INTERP_FILTER defined in encoder/onyx_if.c that is set as EIGHTTAP for now - so SWITCHABLE is not really used. Ideally, this should be SWITCHABLE but that would make the encoder quite a bit slower. We will change the default filter to SWITCHABLE once we find a faster way to search for switchable filters. Change-Id: Iee91832cdc07e6e14108d9b543130fdd12fc9874
-
- 22 Oct, 2012 1 commit
-
-
Ronald S. Bultje authored
This can be used to distinguish between 16x8, 8x16, 8x8 and 4x4 partitioning modes when choosing splitmv as a MB mode. Change-Id: Idc8b59772e1a80ccc4ad44d63c5c2ec3fc061a3c
-
- 17 Oct, 2012 1 commit
-
-
Ronald S. Bultje authored
Change-Id: I76095d5a02edcc5d404ea830157780b24fd509d7
-
- 16 Oct, 2012 1 commit
-
-
Jim Bankoski authored
This reinstates reverted commit 2113a831 Change-Id: I9a9af13497d1e58d4f467e3e083fddf06b1b786c
-
- 14 Oct, 2012 2 commits
-
-
Jim Bankoski authored
This reverts commit 2113a831
-
Jim Bankoski authored
Code clean up - removed rtcd Change-Id: Id963ecf53c370b1d99484ef18d6befeed7e0c748
-