Spatial resamping of ZEROMV predictors
authorJohn Koleszar <jkoleszar@google.com>
Mon, 25 Feb 2013 04:55:14 +0000 (20:55 -0800)
committerJohn Koleszar <jkoleszar@google.com>
Wed, 27 Feb 2013 07:54:23 +0000 (23:54 -0800)
commiteb939f45b8ffde47e160d545114d68ddd3606b90
treebfbd390adf5895b76d63fb7813b91fa77694f1c1
parentc7805395fd4aab2abadce9d34aaf07853cfc5e6d
Spatial resamping of ZEROMV predictors

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
22 files changed:
test/resize_test.cc
vp9/common/vp9_blockd.h
vp9/common/vp9_convolve.c
vp9/common/vp9_convolve.h
vp9/common/vp9_filter.c
vp9/common/vp9_filter.h
vp9/common/vp9_mbpitch.c
vp9/common/vp9_onyxc_int.h
vp9/common/vp9_reconinter.c
vp9/common/vp9_reconinter.h
vp9/decoder/vp9_decodemv.c
vp9/decoder/vp9_decodframe.c
vp9/decoder/vp9_onyxd_int.h
vp9/encoder/vp9_encodeframe.c
vp9/encoder/vp9_encodemb.c
vp9/encoder/vp9_encodemb.h
vp9/encoder/vp9_firstpass.c
vp9/encoder/vp9_mbgraph.c
vp9/encoder/vp9_onyx_if.c
vp9/encoder/vp9_rdopt.c
vp9/encoder/vp9_rdopt.h
vp9/encoder/vp9_temporal_filter.c