1 |
/***************************************************************************** |
/***************************************************************************** |
2 |
* |
* |
3 |
* XVID MPEG-4 VIDEO CODEC |
* XVID MPEG-4 VIDEO CODEC |
4 |
* - XviD plugin: performs a lumimasking algorithm on encoded frame - |
* - Xvid plugin: performs a lumimasking algorithm on encoded frame - |
5 |
* |
* |
6 |
* Copyright(C) 2002-2003 Peter Ross <pross@xvid.org> |
* Copyright(C) 2002-2003 Peter Ross <pross@xvid.org> |
7 |
* 2002 Christoph Lampert <gruel@web.de> |
* 2002 Christoph Lampert <gruel@web.de> |
204 |
ptr += 16*j*data->current.stride[0] + 16*i; |
ptr += 16*j*data->current.stride[0] + 16*i; |
205 |
|
|
206 |
if (handle->method) { /* Variance masking mode */ |
if (handle->method) { /* Variance masking mode */ |
207 |
|
int variance = 0; |
208 |
/* Accumulate sum and sum of squares over the MB */ |
/* Accumulate sum and sum of squares over the MB */ |
209 |
for (k = 0; k < 16; k++) { |
for (k = 0; k < 16; k++) { |
210 |
for (l = 0; l < 16; l++) { |
for (l = 0; l < 16; l++) { |
214 |
} |
} |
215 |
} |
} |
216 |
/* Variance = SSD - SAD^2 / (numpixels) */ |
/* Variance = SSD - SAD^2 / (numpixels) */ |
217 |
int variance = sum_of_squares - sum * sum / 256; |
variance = sum_of_squares - sum * sum / 256; |
218 |
handle->val[j*data->mb_width + i] = (float)variance; |
handle->val[j*data->mb_width + i] = (float)variance; |
219 |
} |
} |
220 |
else { /* Luminance masking mode */ |
else { /* Luminance masking mode */ |