26 |
* along with this program; if not, write to the xvid_free Software |
* along with this program; if not, write to the xvid_free Software |
27 |
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
28 |
* |
* |
29 |
* $Id: mbprediction.h,v 1.10 2002-06-28 15:14:40 suxen_drol Exp $ |
* $Id: mbprediction.h,v 1.11 2002-06-30 10:46:29 suxen_drol Exp $ |
30 |
* |
* |
31 |
*************************************************************************/ |
*************************************************************************/ |
32 |
|
|
80 |
uint32_t current_quant, |
uint32_t current_quant, |
81 |
int32_t iDcScaler, |
int32_t iDcScaler, |
82 |
int16_t predictors[8], |
int16_t predictors[8], |
83 |
const unsigned int bound_x, |
const int bound); |
|
const unsigned int bound_y); |
|
84 |
|
|
85 |
|
|
86 |
/* get_pmvdata returns the median predictor and nothing else */ |
/* get_pmvdata returns the median predictor and nothing else */ |
207 |
} |
} |
208 |
|
|
209 |
|
|
210 |
|
|
211 |
|
int |
212 |
|
get_pmvdata2(const MACROBLOCK * const pMBs, |
213 |
|
const uint32_t x, |
214 |
|
const uint32_t y, |
215 |
|
const uint32_t x_dim, |
216 |
|
const uint32_t block, |
217 |
|
VECTOR * const pmv, |
218 |
|
int32_t * const psad, |
219 |
|
const int bound); |
220 |
|
|
221 |
|
|
222 |
/* This is somehow a copy of get_pmv, but returning all MVs and Minimum SAD |
/* This is somehow a copy of get_pmv, but returning all MVs and Minimum SAD |
223 |
instead of only Median MV */ |
instead of only Median MV */ |
224 |
|
|
229 |
const uint32_t x_dim, |
const uint32_t x_dim, |
230 |
const uint32_t block, |
const uint32_t block, |
231 |
VECTOR * const pmv, |
VECTOR * const pmv, |
232 |
int32_t * const psad, |
int32_t * const psad) |
|
const unsigned int bound_x, |
|
|
const unsigned int bound_y) |
|
233 |
{ |
{ |
234 |
|
|
235 |
/* |
/* |
253 |
const VECTOR zeroMV = { 0, 0 }; |
const VECTOR zeroMV = { 0, 0 }; |
254 |
|
|
255 |
// first row of blocks (special case) |
// first row of blocks (special case) |
256 |
/* if (y == 0 && (block == 0 || block == 1)) { */ |
if (y == 0 && (block == 0 || block == 1)) { |
257 |
if (((y == bound_y && x >= bound_x) || (y == bound_y + 1 && x < bound_x)) |
if ((x == 0) && (block == 0)) // first column, first block |
|
&& (block == 0 || block == 1)) { |
|
|
|
|
|
/* if ((x == 0) && (block == 0)) */ // first column, first block |
|
|
if ((x == 0 || (y == bound_y && x == bound_x)) && (block == 0)) // first column, first block |
|
258 |
{ |
{ |
259 |
pmv[0] = pmv[1] = pmv[2] = pmv[3] = zeroMV; |
pmv[0] = pmv[1] = pmv[2] = pmv[3] = zeroMV; |
260 |
psad[0] = 0; |
psad[0] = 0; |