Mercurial > libavcodec.hg
comparison h264_loopfilter.c @ 11045:5f712d734793 libavcodec
factorize first filter call out, this makes the code somewhat
smaller without any speed loss.
| author | michael |
|---|---|
| date | Thu, 28 Jan 2010 19:44:13 +0000 |
| parents | 74f672a1f763 |
| children | 03cda6ebdc05 |
comparison
equal
deleted
inserted
replaced
| 11044:3f66d1d80e03 | 11045:5f712d734793 |
|---|---|
| 338 | 338 |
| 339 if( IS_INTRA(mb_type) ) { | 339 if( IS_INTRA(mb_type) ) { |
| 340 int16_t bS4[4] = {4,4,4,4}; | 340 int16_t bS4[4] = {4,4,4,4}; |
| 341 int16_t bS3[4] = {3,3,3,3}; | 341 int16_t bS3[4] = {3,3,3,3}; |
| 342 int16_t *bSH = FIELD_PICTURE ? bS3 : bS4; | 342 int16_t *bSH = FIELD_PICTURE ? bS3 : bS4; |
| 343 if(left_type) | |
| 344 filter_mb_edgev( &img_y[4*0], linesize, bS4, qp0, h); | |
| 343 if( IS_8x8DCT(mb_type) ) { | 345 if( IS_8x8DCT(mb_type) ) { |
| 344 if(left_type) | |
| 345 filter_mb_edgev( &img_y[4*0], linesize, bS4, qp0, h); | |
| 346 filter_mb_edgev( &img_y[4*2], linesize, bS3, qp, h); | 346 filter_mb_edgev( &img_y[4*2], linesize, bS3, qp, h); |
| 347 filter_mb_edgeh( &img_y[4*0*linesize], linesize, bSH, qp1, h); | 347 filter_mb_edgeh( &img_y[4*0*linesize], linesize, bSH, qp1, h); |
| 348 filter_mb_edgeh( &img_y[4*2*linesize], linesize, bS3, qp, h); | 348 filter_mb_edgeh( &img_y[4*2*linesize], linesize, bS3, qp, h); |
| 349 } else { | 349 } else { |
| 350 if(left_type) | |
| 351 filter_mb_edgev( &img_y[4*0], linesize, bS4, qp0, h); | |
| 352 filter_mb_edgev( &img_y[4*1], linesize, bS3, qp, h); | 350 filter_mb_edgev( &img_y[4*1], linesize, bS3, qp, h); |
| 353 filter_mb_edgev( &img_y[4*2], linesize, bS3, qp, h); | 351 filter_mb_edgev( &img_y[4*2], linesize, bS3, qp, h); |
| 354 filter_mb_edgev( &img_y[4*3], linesize, bS3, qp, h); | 352 filter_mb_edgev( &img_y[4*3], linesize, bS3, qp, h); |
| 355 filter_mb_edgeh( &img_y[4*0*linesize], linesize, bSH, qp1, h); | 353 filter_mb_edgeh( &img_y[4*0*linesize], linesize, bSH, qp1, h); |
| 356 filter_mb_edgeh( &img_y[4*1*linesize], linesize, bS3, qp, h); | 354 filter_mb_edgeh( &img_y[4*1*linesize], linesize, bS3, qp, h); |
| 397 if(!(edge&1)) {\ | 395 if(!(edge&1)) {\ |
| 398 filter_mb_edgec##hv( &img_cb[2*edge*(dir?uvlinesize:1)], uvlinesize, bS[dir][edge], edge ? qpc : qpc##dir, h );\ | 396 filter_mb_edgec##hv( &img_cb[2*edge*(dir?uvlinesize:1)], uvlinesize, bS[dir][edge], edge ? qpc : qpc##dir, h );\ |
| 399 filter_mb_edgec##hv( &img_cr[2*edge*(dir?uvlinesize:1)], uvlinesize, bS[dir][edge], edge ? qpc : qpc##dir, h );\ | 397 filter_mb_edgec##hv( &img_cr[2*edge*(dir?uvlinesize:1)], uvlinesize, bS[dir][edge], edge ? qpc : qpc##dir, h );\ |
| 400 }\ | 398 }\ |
| 401 } | 399 } |
| 400 if(left_type) | |
| 401 FILTER(v,0,0); | |
| 402 if( edges == 1 ) { | 402 if( edges == 1 ) { |
| 403 if(left_type) | |
| 404 FILTER(v,0,0); | |
| 405 FILTER(h,1,0); | 403 FILTER(h,1,0); |
| 406 } else if( IS_8x8DCT(mb_type) ) { | 404 } else if( IS_8x8DCT(mb_type) ) { |
| 407 if(left_type) | |
| 408 FILTER(v,0,0); | |
| 409 FILTER(v,0,2); | 405 FILTER(v,0,2); |
| 410 FILTER(h,1,0); | 406 FILTER(h,1,0); |
| 411 FILTER(h,1,2); | 407 FILTER(h,1,2); |
| 412 } else { | 408 } else { |
| 413 if(left_type) | |
| 414 FILTER(v,0,0); | |
| 415 FILTER(v,0,1); | 409 FILTER(v,0,1); |
| 416 FILTER(v,0,2); | 410 FILTER(v,0,2); |
| 417 FILTER(v,0,3); | 411 FILTER(v,0,3); |
| 418 FILTER(h,1,0); | 412 FILTER(h,1,0); |
| 419 FILTER(h,1,1); | 413 FILTER(h,1,1); |
