MCPcopy Create free account
hub / github.com/FFmpeg/FFmpeg / rv34_inv_transform

Function rv34_inv_transform

libavcodec/rv34.c:199–217  ·  view source on GitHub ↗

* Real Video 3.0/4.0 inverse transform * Code is almost the same as in SVQ3, only scaling is different. */

Source from the content-addressed store, hash-verified

197 * Code is almost the same as in SVQ3, only scaling is different.
198 */
199static 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

Callers 1

rv34_decode_macroblockFunction · 0.85

Calls 1

rv34_row_transformFunction · 0.85

Tested by

no test coverage detected