* Real Video 3.0/4.0 inverse transform * Code is almost the same as in SVQ3, only scaling is different. */
| 197 | * Code is almost the same as in SVQ3, only scaling is different. |
| 198 | */ |
| 199 | static void rv34_inv_transform(DCTELEM *block){ |
| 200 | int temp[16]; |
| 201 | int i; |
| 202 | |
| 203 | rv34_row_transform(temp, block); |
| 204 | |
| 205 | for(i=0; i<4; i++){ |
| 206 | const int z0= 13*(temp[4*0+i] + temp[4*2+i]) + 0x200; |
| 207 | const int z1= 13*(temp[4*0+i] - temp[4*2+i]) + 0x200; |
| 208 | const int z2= 7* temp[4*1+i] - 17*temp[4*3+i]; |
| 209 | const int z3= 17* temp[4*1+i] + 7*temp[4*3+i]; |
| 210 | |
| 211 | block[i*8+0]= (z0 + z3)>>10; |
| 212 | block[i*8+1]= (z1 + z2)>>10; |
| 213 | block[i*8+2]= (z1 - z2)>>10; |
| 214 | block[i*8+3]= (z0 - z3)>>10; |
| 215 | } |
| 216 | |
| 217 | } |
| 218 | |
| 219 | /** |
| 220 | * RealVideo 3.0/4.0 inverse transform for DC block |
no test coverage detected