Mercurial > libavcodec.hg
comparison vc1dsp.c @ 4239:30b14d0f2324 libavcodec
Correct rounding values in overlap filtering
author | kostya |
---|---|
date | Sun, 26 Nov 2006 04:57:31 +0000 |
parents | ff9a94fce879 |
children | d6f83e2f8804 |
comparison
equal
deleted
inserted
replaced
4238:a784639411d6 | 4239:30b14d0f2324 |
---|---|
29 #include "dsputil.h" | 29 #include "dsputil.h" |
30 | 30 |
31 | 31 |
32 /** Apply overlap transform to horizontal edge | 32 /** Apply overlap transform to horizontal edge |
33 */ | 33 */ |
34 static void vc1_v_overlap_c(uint8_t* src, int stride, int rnd) | 34 static void vc1_v_overlap_c(uint8_t* src, int stride) |
35 { | 35 { |
36 int i; | 36 int i; |
37 int a, b, c, d; | 37 int a, b, c, d; |
38 int d1, d2; | 38 int d1, d2; |
39 int rnd = 1; | |
39 for(i = 0; i < 8; i++) { | 40 for(i = 0; i < 8; i++) { |
40 a = src[-2*stride]; | 41 a = src[-2*stride]; |
41 b = src[-stride]; | 42 b = src[-stride]; |
42 c = src[0]; | 43 c = src[0]; |
43 d = src[stride]; | 44 d = src[stride]; |
47 src[-2*stride] = a - d1; | 48 src[-2*stride] = a - d1; |
48 src[-stride] = b - d2; | 49 src[-stride] = b - d2; |
49 src[0] = c + d2; | 50 src[0] = c + d2; |
50 src[stride] = d + d1; | 51 src[stride] = d + d1; |
51 src++; | 52 src++; |
53 rnd = !rnd; | |
52 } | 54 } |
53 } | 55 } |
54 | 56 |
55 /** Apply overlap transform to vertical edge | 57 /** Apply overlap transform to vertical edge |
56 */ | 58 */ |
57 static void vc1_h_overlap_c(uint8_t* src, int stride, int rnd) | 59 static void vc1_h_overlap_c(uint8_t* src, int stride) |
58 { | 60 { |
59 int i; | 61 int i; |
60 int a, b, c, d; | 62 int a, b, c, d; |
61 int d1, d2; | 63 int d1, d2; |
64 int rnd = 1; | |
62 for(i = 0; i < 8; i++) { | 65 for(i = 0; i < 8; i++) { |
63 a = src[-2]; | 66 a = src[-2]; |
64 b = src[-1]; | 67 b = src[-1]; |
65 c = src[0]; | 68 c = src[0]; |
66 d = src[1]; | 69 d = src[1]; |
70 src[-2] = a - d1; | 73 src[-2] = a - d1; |
71 src[-1] = b - d2; | 74 src[-1] = b - d2; |
72 src[0] = c + d2; | 75 src[0] = c + d2; |
73 src[1] = d + d1; | 76 src[1] = d + d1; |
74 src += stride; | 77 src += stride; |
78 rnd = !rnd; | |
75 } | 79 } |
76 } | 80 } |
77 | 81 |
78 | 82 |
79 /** Do inverse transform on 8x8 block | 83 /** Do inverse transform on 8x8 block |