summaryrefslogtreecommitdiff
path: root/libavcodec/snow.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2010-01-11 01:00:50 +0000
committerMichael Niedermayer <michaelni@gmx.at>2010-01-11 01:00:50 +0000
commit233a8b3d6bb19fd80dd7760389051fcde766f06c (patch)
tree64592ccf7e95197b22a3238c480308024ae23c35 /libavcodec/snow.c
parent2a84512a7463f4c8f521fd40bb98aaff18046035 (diff)
downloadffmpeg-233a8b3d6bb19fd80dd7760389051fcde766f06c.tar.gz
Merge vertical_compose53iL0*()
8% faster C 5/3 wavelet at the decoder side. Originally committed as revision 21131 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/snow.c')
-rw-r--r--libavcodec/snow.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/libavcodec/snow.c b/libavcodec/snow.c
index a82c07bb3f..a9aa2eb368 100644
--- a/libavcodec/snow.c
+++ b/libavcodec/snow.c
@@ -1070,8 +1070,17 @@ static void spatial_compose53i_dy_buffered(DWTCompose *cs, slice_buffer * sb, in
IDWTELEM *b2= slice_buffer_get_line(sb, mirror(y+1, height-1) * stride_line);
IDWTELEM *b3= slice_buffer_get_line(sb, mirror(y+2, height-1) * stride_line);
+ if(y+1<(unsigned)height && y<(unsigned)height){
+ int x;
+
+ for(x=0; x<width; x++){
+ b2[x] -= (b1[x] + b3[x] + 2)>>2;
+ b1[x] += (b0[x] + b2[x])>>1;
+ }
+ }else{
if(y+1<(unsigned)height) vertical_compose53iL0(b1, b2, b3, width);
if(y+0<(unsigned)height) vertical_compose53iH0(b0, b1, b2, width);
+ }
if(y-1<(unsigned)height) horizontal_compose53i(b0, width);
if(y+0<(unsigned)height) horizontal_compose53i(b1, width);