2d60bee1fb
Alternative strategy for finding a list of candidate motion vectors to use as reference values in mv coding and as nearest and near. Sort by sad in vp8_find_best_ref_mvs() rather than just pick the best. Allow 0,0 as a best ref option but not a nearest or near unless there are no alternatives. Encode/Decode verified on at least some clips. Some commented out experimental and stats code still in place. Gain over existing code averages about 1% on derf (alll metrics) with improvement on all clips. Other test results pending. The entropy coding of the mode (nearest/near etc) still depends upon and requires the old "findnear" code so this needs looking at and may provide room for further gains. Change-Id: I871d7cba1d1c379c4bad9bcccce1fb19c46b8247
38 lines
939 B
C
38 lines
939 B
C
/*
|
|
* Copyright (c) 2012 The WebM project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
#include "onyxc_int.h"
|
|
#include "blockd.h"
|
|
|
|
// MR reference entropy header file.
|
|
#if CONFIG_NEW_MVREF
|
|
|
|
#ifndef __INC_MVREF_COMMON_H
|
|
#define __INC_MVREF_COMMON_H
|
|
|
|
unsigned int mv_distance(int_mv *mv1, int_mv *mv2);
|
|
|
|
unsigned int pick_best_mv_ref( int_mv target_mv,
|
|
int_mv * mv_ref_list,
|
|
int_mv * best_ref );
|
|
|
|
void find_mv_refs(
|
|
MACROBLOCKD *xd,
|
|
MODE_INFO *here,
|
|
MODE_INFO *lf_here,
|
|
MV_REFERENCE_FRAME ref_frame,
|
|
int_mv * mv_ref_list,
|
|
int *ref_sign_bias
|
|
);
|
|
|
|
#endif
|
|
|
|
#endif
|