Use pixels_blit to copy neccessary pixels.

This commit is contained in:
Ari Lemmetti 2015-08-10 17:19:31 +03:00
parent 01f40ec104
commit 650dd7d840

View file

@ -838,20 +838,20 @@ static unsigned search_frac(const encoder_state_t * const state,
mv.x <<= 1; mv.x <<= 1;
mv.y <<= 1; mv.y <<= 1;
kvz_pixel tmp_filtered[LCU_WIDTH*LCU_WIDTH];
kvz_pixel tmp_pic[LCU_WIDTH*LCU_WIDTH];
pixels_blit(pic->y + orig->y*pic->width + orig->x, tmp_pic, block_width, block_width, pic->stride, block_width);
// Search halfpel positions around best integer mv // Search halfpel positions around best integer mv
for (i = 0; i < 9; ++i) { for (i = 0; i < 9; ++i) {
const vector2d_t *pattern = &square[i]; const vector2d_t *pattern = &square[i];
kvz_pixel tmp_filtered[LCU_WIDTH*LCU_WIDTH];
kvz_pixel tmp_pic[LCU_WIDTH*LCU_WIDTH];
int y,x; int y,x;
for(y = 0; y < block_width; ++y) { for(y = 0; y < block_width; ++y) {
int dst_y = y*4+pattern->y*2; int dst_y = y*4+pattern->y*2;
for(x = 0; x < block_width; ++x) { for(x = 0; x < block_width; ++x) {
int dst_x = x*4+pattern->x*2; int dst_x = x*4+pattern->x*2;
tmp_filtered[y*block_width+x] = dst_off[dst_y*dst_stride+dst_x]; tmp_filtered[y*block_width+x] = dst_off[dst_y*dst_stride+dst_x];
tmp_pic[y*block_width+x] = pic->y[orig->x+x + (orig->y+y)*pic->width];
} }
} }
@ -882,16 +882,12 @@ static unsigned search_frac(const encoder_state_t * const state,
for (i = 0; i < 9; ++i) { for (i = 0; i < 9; ++i) {
const vector2d_t *pattern = &square[i]; const vector2d_t *pattern = &square[i];
kvz_pixel tmp_filtered[LCU_WIDTH*LCU_WIDTH];
kvz_pixel tmp_pic[LCU_WIDTH*LCU_WIDTH];
int y,x; int y,x;
for(y = 0; y < block_width; ++y) { for(y = 0; y < block_width; ++y) {
int dst_y = y*4+halfpel_offset.y+pattern->y; int dst_y = y*4+halfpel_offset.y+pattern->y;
for(x = 0; x < block_width; ++x) { for(x = 0; x < block_width; ++x) {
int dst_x = x*4+halfpel_offset.x+pattern->x; int dst_x = x*4+halfpel_offset.x+pattern->x;
tmp_filtered[y*block_width+x] = dst_off[dst_y*dst_stride+dst_x]; tmp_filtered[y*block_width+x] = dst_off[dst_y*dst_stride+dst_x];
tmp_pic[y*block_width+x] = pic->y[orig->x+x + (orig->y+y)*pic->width];
} }
} }