[x264-devel] commit: more hpel fixes (Loren Merritt )
git version control
git at videolan.org
Tue Apr 15 06:12:09 CEST 2008
x264 | branch: master | Loren Merritt <pengvado at akuvian.org> | Sun Apr 13 10:29:15 2008 -0600| [0414d78c3c44b3be7f3340d959aaaeb73e4b017a]
more hpel fixes
> http://git.videolan.org/gitweb.cgi/x264.git/?a=commit;h=0414d78c3c44b3be7f3340d959aaaeb73e4b017a
---
common/frame.c | 9 +++++----
common/x86/mc-c.c | 2 +-
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/common/frame.c b/common/frame.c
index 4c4cc91..4fcf648 100644
--- a/common/frame.c
+++ b/common/frame.c
@@ -237,19 +237,20 @@ void x264_frame_expand_border( x264_t *h, x264_frame_t *frame, int mb_y, int b_e
void x264_frame_expand_border_filtered( x264_t *h, x264_frame_t *frame, int mb_y, int b_end )
{
- /* during filtering, 8 extra pixels were filtered on each edge.
+ /* during filtering, 8 extra pixels were filtered on each edge,
+ * but up to 3 of the horizontal ones may be wrong.
we want to expand border from the last filtered pixel */
int b_start = !mb_y;
int stride = frame->i_stride[0];
- int width = 16*h->sps->i_mb_width + 16;
+ int width = 16*h->sps->i_mb_width + 8;
int height = b_end ? (16*(h->sps->i_mb_height - mb_y) >> h->sh.b_mbaff) + 16 : 16;
- int padh = PADH - 8;
+ int padh = PADH - 4;
int padv = PADV - 8;
int i;
for( i = 1; i < 4; i++ )
{
// buffer: 8 luma, to match the hpel filter
- uint8_t *pix = frame->filtered[i] + (16*mb_y - (8 << h->sh.b_mbaff)) * stride - 8;
+ uint8_t *pix = frame->filtered[i] + (16*mb_y - (8 << h->sh.b_mbaff)) * stride - 4;
if( h->sh.b_mbaff )
{
plane_expand_border( pix, stride*2, width, height, padh, padv, b_start, b_end );
diff --git a/common/x86/mc-c.c b/common/x86/mc-c.c
index 356df36..c2c2904 100644
--- a/common/x86/mc-c.c
+++ b/common/x86/mc-c.c
@@ -178,7 +178,7 @@ void x264_hpel_filter_##cpu( uint8_t *dsth, uint8_t *dstv, uint8_t *dstc, uint8_
dstc -= realign;\
dsth -= realign;\
width += realign;\
- buf = x264_malloc(((width+2*align-1)&-align)*sizeof(int16_t));\
+ buf = x264_malloc((width+16)*sizeof(int16_t));\
while( height-- )\
{\
x264_hpel_filter_v_##cpuv( dstv, src, buf+8, stride, width );\
More information about the x264-devel
mailing list