summaryrefslogtreecommitdiff
path: root/vp9/common/vp9_convolve.h
AgeCommit message (Collapse)Author
2014-01-23vp9/common: add extern "C" to headersJames Zern
Change-Id: Ic334da9aee968e33762c2b25d9fbad24c844b411
2013-10-14Moving FILTER_BITS constant from vp9_convolve.h to vp9_filter.h.Dmitry Kovalev
Change-Id: Idd7bdb0c364d94c5a0d24c87bb8574292e4c840c
2013-10-03Adding vp9_get_filter_kernel() function.Dmitry Kovalev
Moving INTERPOLATIONFILTERTYPE enum and subpix_fn_table struct to vp9_filter.h. Adding convenient typedef for subpel kernels. Function vp9_setup_interp_filters() besides setting xd->subpix.filter_x & xd->subpix.filter_y has a side effect of also setting scale factors. This is not required inside decode_modes_b() because scale factors have been already set by set_ref() calls. That's why replacing vp9_setup_interp_filters() call with newly created vp9_get_filter_kernel() call. The behavior of vp9_setup_interp_filters() is unchanged (it is used from the encoder). Change-Id: I3f36d3f7cd8d15195a6e2fafd1777cdaf9ecb847
2013-09-29vp9 convolve lint issuesJim Bankoski
Change-Id: I8b496191c6a60a60a52c929adca305db47058a84
2013-08-23cosmetics: strip 'VP9_' from defines in vp9 only codeJames Zern
Change-Id: I481d9bb2fa3ec72b6a83d5f04d545ad8013f295c
2013-08-20Adding VP9_FILTER_BITS constant.Dmitry Kovalev
Removing VP9_FILTER_WEIGHT, VP9_FILTER_SHIFT, BLOCK_WIDTH_HEIGHT constants. Using ROUND_POWER_OF_TWO for rounding. Change-Id: I2e8d6858dcd600a87096138209731137d7decc24
2013-07-10Replace copy_memNxM functions with a generic copy/avg function.Ronald S. Bultje
Change-Id: I3ce849452ed4f08527de9565a9914d5ee36170aa
2013-04-22Removing the implicit compound inter experimentDeb Mukherjee
Removing this experiment for now, since it has been broken with the latest code changes. Change-Id: I1be2181b56de490fcb577f5905b5e147a8ed82d8
2013-03-26Implicit weighted prediction experimentDeb Mukherjee
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
2013-02-26Spatial resamping of ZEROMV predictorsJohn Koleszar
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
2013-02-05Add 8-tap generic convolverJohn Koleszar
This commit introduces a new convolution function which will be used to replace the existing subpixel interpolation functions. It is much the same as the existing functions, but allows for changing the filter kernel on a per-pixel basis, and doesn't bake in knowledge of the filter to be applied or the size of the resulting block into the function name. Replacing the existing subpel filters will come in a later commit. Change-Id: Ic9a5615f2f456cb77f96741856fc650d6d78bb91