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

Function row_fdct

libavcodec/faandct.c:70–123  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

68};
69
70static av_always_inline void row_fdct(FLOAT temp[64], DCTELEM * data)
71{
72 FLOAT tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
73 FLOAT tmp10, tmp11, tmp12, tmp13;
74 FLOAT z2, z4, z11, z13;
75 FLOAT av_unused z5;
76 int i;
77
78 for (i=0; i<8*8; i+=8) {
79 tmp0= data[0 + i] + data[7 + i];
80 tmp7= data[0 + i] - data[7 + i];
81 tmp1= data[1 + i] + data[6 + i];
82 tmp6= data[1 + i] - data[6 + i];
83 tmp2= data[2 + i] + data[5 + i];
84 tmp5= data[2 + i] - data[5 + i];
85 tmp3= data[3 + i] + data[4 + i];
86 tmp4= data[3 + i] - data[4 + i];
87
88 tmp10= tmp0 + tmp3;
89 tmp13= tmp0 - tmp3;
90 tmp11= tmp1 + tmp2;
91 tmp12= tmp1 - tmp2;
92
93 temp[0 + i]= tmp10 + tmp11;
94 temp[4 + i]= tmp10 - tmp11;
95
96 tmp12 += tmp13;
97 tmp12 *= A1;
98 temp[2 + i]= tmp13 + tmp12;
99 temp[6 + i]= tmp13 - tmp12;
100
101 tmp4 += tmp5;
102 tmp5 += tmp6;
103 tmp6 += tmp7;
104
105#if 0
106 z5= (tmp4 - tmp6) * A5;
107 z2= tmp4*A2 + z5;
108 z4= tmp6*A4 + z5;
109#else
110 z2= tmp4*(A2+A5) - tmp6*A5;
111 z4= tmp6*(A4-A5) + tmp4*A5;
112#endif
113 tmp5*=A1;
114
115 z11= tmp7 + tmp5;
116 z13= tmp7 - tmp5;
117
118 temp[5 + i]= z13 + z2;
119 temp[3 + i]= z13 - z2;
120 temp[1 + i]= z11 + z4;
121 temp[7 + i]= z11 - z4;
122 }
123}
124
125void ff_faandct(DCTELEM * data)
126{

Callers 2

ff_faandctFunction · 0.70
ff_faandct248Function · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected