📄 sbr_dct.c
字号:
f201 = f162 - f170;
f202 = f162 + f170;
f203 = f164 - f172;
f204 = f164 + f172;
f205 = f166 - f174;
f206 = f166 + f174;
f207 = f168 - f176;
f208 = f168 + f176;
f209 = f182 - f194;
f210 = f182 + f194;
f211 = f181 - f193;
f212 = f181 + f193;
f213 = f188 - f200;
f214 = f188 + f200;
f215 = f187 - f199;
f216 = f187 + f199;
f217 = f201 + f203;
f218 = MUL_C(f201, COEF_CONST(1.3065629648763766));
f219 = MUL_F(f217, FRAC_CONST((-0.9238795325112866)));
f220 = MUL_F(f203, FRAC_CONST((-0.5411961001461967)));
f221 = f218 + f219;
f222 = f220 - f219;
f223 = f205 + f207;
f224 = MUL_F(f205, FRAC_CONST(0.5411961001461969));
f225 = MUL_F(f223, FRAC_CONST(0.3826834323650898));
f226 = MUL_C(f207, COEF_CONST(1.3065629648763766));
f227 = f224 + f225;
f228 = f226 - f225;
f229 = f209 + f211;
f230 = MUL_C(f209, COEF_CONST(1.3065629648763766));
f231 = MUL_F(f229, FRAC_CONST((-0.9238795325112866)));
f232 = MUL_F(f211, FRAC_CONST((-0.5411961001461967)));
f233 = f230 + f231;
f234 = f232 - f231;
f235 = f213 + f215;
f236 = MUL_F(f213, FRAC_CONST(0.5411961001461969));
f237 = MUL_F(f235, FRAC_CONST(0.3826834323650898));
f238 = MUL_C(f215, COEF_CONST(1.3065629648763766));
f239 = f236 + f237;
f240 = f238 - f237;
f241 = f202 - f206;
f242 = f202 + f206;
f243 = f204 - f208;
f244 = f204 + f208;
f245 = f222 - f228;
f246 = f222 + f228;
f247 = f221 - f227;
f248 = f221 + f227;
f249 = f210 - f214;
f250 = f210 + f214;
f251 = f212 - f216;
f252 = f212 + f216;
f253 = f234 - f240;
f254 = f234 + f240;
f255 = f233 - f239;
f256 = f233 + f239;
f257 = f241 - f243;
f258 = f241 + f243;
f259 = MUL_F(f257, FRAC_CONST(0.7071067811865474));
f260 = MUL_F(f258, FRAC_CONST(0.7071067811865474));
f261 = f245 - f247;
f262 = f245 + f247;
f263 = MUL_F(f261, FRAC_CONST(0.7071067811865474));
f264 = MUL_F(f262, FRAC_CONST(0.7071067811865474));
f265 = f249 - f251;
f266 = f249 + f251;
f267 = MUL_F(f265, FRAC_CONST(0.7071067811865474));
f268 = MUL_F(f266, FRAC_CONST(0.7071067811865474));
f269 = f253 - f255;
f270 = f253 + f255;
f271 = MUL_F(f269, FRAC_CONST(0.7071067811865474));
f272 = MUL_F(f270, FRAC_CONST(0.7071067811865474));
y[31] = f98 - f242;
y[0] = f98 + f242;
y[30] = f100 - f250;
y[1] = f100 + f250;
y[29] = f102 - f254;
y[2] = f102 + f254;
y[28] = f104 - f246;
y[3] = f104 + f246;
y[27] = f106 - f264;
y[4] = f106 + f264;
y[26] = f108 - f272;
y[5] = f108 + f272;
y[25] = f110 - f268;
y[6] = f110 + f268;
y[24] = f112 - f260;
y[7] = f112 + f260;
y[23] = f111 - f259;
y[8] = f111 + f259;
y[22] = f109 - f267;
y[9] = f109 + f267;
y[21] = f107 - f271;
y[10] = f107 + f271;
y[20] = f105 - f263;
y[11] = f105 + f263;
y[19] = f103 - f248;
y[12] = f103 + f248;
y[18] = f101 - f256;
y[13] = f101 + f256;
y[17] = f99 - f252;
y[14] = f99 + f252;
y[16] = f97 - f244;
y[15] = f97 + f244;
}
void DCT2_32_unscaled(real_t *y, real_t *x)
{
real_t f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10;
real_t f11, f12, f13, f14, f15, f16, f17, f18, f19, f20;
real_t f21, f22, f23, f24, f25, f26, f27, f28, f29, f30;
real_t f31, f32, f33, f34, f35, f36, f37, f38, f39, f40;
real_t f41, f42, f43, f44, f45, f46, f47, f48, f49, f50;
real_t f51, f52, f53, f54, f55, f56, f57, f58, f59, f60;
real_t f63, f64, f65, f66, f69, f70, f71, f72, f73, f74;
real_t f75, f76, f77, f78, f79, f80, f81, f83, f85, f86;
real_t f89, f90, f91, f92, f93, f94, f95, f96, f97, f98;
real_t f99, f100, f101, f102, f103, f104, f105, f106, f107, f108;
real_t f109, f110, f111, f112, f113, f114, f115, f116, f117, f118;
real_t f119, f120, f121, f122, f123, f124, f127, f128, f129, f130;
real_t f133, f134, f135, f136, f139, f140, f141, f142, f145, f146;
real_t f147, f148, f149, f150, f151, f152, f153, f154, f155, f156;
real_t f157, f158, f159, f160, f161, f162, f163, f164, f165, f166;
real_t f167, f168, f169, f170, f171, f172, f173, f174, f175, f176;
real_t f177, f178, f179, f180, f181, f182, f183, f184, f185, f186;
real_t f187, f188, f189, f190, f191, f192, f193, f194, f195, f196;
real_t f197, f198, f199, f200, f201, f202, f203, f204, f205, f206;
real_t f207, f208, f209, f210, f211, f212, f213, f214, f215, f216;
real_t f217, f218, f219, f220, f221, f222, f223, f224, f225, f226;
real_t f227, f228, f229, f230, f231, f232, f233, f234, f235, f236;
real_t f237, f238, f239, f240, f241, f242, f243, f244, f247, f248;
real_t f249, f250, f253, f254, f255, f256, f259, f260, f261, f262;
real_t f265, f266, f267, f268, f271, f272, f273, f274, f277, f278;
real_t f279, f280, f283, f284, f285, f286;
f0 = x[0] - x[31];
f1 = x[0] + x[31];
f2 = x[1] - x[30];
f3 = x[1] + x[30];
f4 = x[2] - x[29];
f5 = x[2] + x[29];
f6 = x[3] - x[28];
f7 = x[3] + x[28];
f8 = x[4] - x[27];
f9 = x[4] + x[27];
f10 = x[5] - x[26];
f11 = x[5] + x[26];
f12 = x[6] - x[25];
f13 = x[6] + x[25];
f14 = x[7] - x[24];
f15 = x[7] + x[24];
f16 = x[8] - x[23];
f17 = x[8] + x[23];
f18 = x[9] - x[22];
f19 = x[9] + x[22];
f20 = x[10] - x[21];
f21 = x[10] + x[21];
f22 = x[11] - x[20];
f23 = x[11] + x[20];
f24 = x[12] - x[19];
f25 = x[12] + x[19];
f26 = x[13] - x[18];
f27 = x[13] + x[18];
f28 = x[14] - x[17];
f29 = x[14] + x[17];
f30 = x[15] - x[16];
f31 = x[15] + x[16];
f32 = f1 - f31;
f33 = f1 + f31;
f34 = f3 - f29;
f35 = f3 + f29;
f36 = f5 - f27;
f37 = f5 + f27;
f38 = f7 - f25;
f39 = f7 + f25;
f40 = f9 - f23;
f41 = f9 + f23;
f42 = f11 - f21;
f43 = f11 + f21;
f44 = f13 - f19;
f45 = f13 + f19;
f46 = f15 - f17;
f47 = f15 + f17;
f48 = f33 - f47;
f49 = f33 + f47;
f50 = f35 - f45;
f51 = f35 + f45;
f52 = f37 - f43;
f53 = f37 + f43;
f54 = f39 - f41;
f55 = f39 + f41;
f56 = f49 - f55;
f57 = f49 + f55;
f58 = f51 - f53;
f59 = f51 + f53;
f60 = f57 - f59;
y[0] = f57 + f59;
y[16] = MUL_F(FRAC_CONST(0.7071067811865476), f60);
f63 = f56 + f58;
f64 = MUL_C(COEF_CONST(1.3065629648763766), f56);
f65 = MUL_F(FRAC_CONST(-0.9238795325112866), f63);
f66 = MUL_F(FRAC_CONST(-0.5411961001461967), f58);
y[24] = f64 + f65;
y[8] = f66 - f65;
f69 = f48 + f54;
f70 = MUL_C(COEF_CONST(1.1758756024193588), f48);
f71 = MUL_F(FRAC_CONST(-0.9807852804032304), f69);
f72 = MUL_F(FRAC_CONST(-0.7856949583871021), f54);
f73 = f70 + f71;
f74 = f72 - f71;
f75 = f50 + f52;
f76 = MUL_C(COEF_CONST(1.3870398453221473), f50);
f77 = MUL_F(FRAC_CONST(-0.8314696123025455), f75);
f78 = MUL_F(FRAC_CONST(-0.2758993792829436), f52);
f79 = f76 + f77;
f80 = f78 - f77;
f81 = f74 - f80;
y[4] = f74 + f80;
f83 = MUL_F(FRAC_CONST(0.7071067811865476), f81);
y[28] = f73 - f79;
f85 = f73 + f79;
f86 = MUL_F(FRAC_CONST(0.7071067811865476), f85);
y[20] = f83 - f86;
y[12] = f83 + f86;
f89 = f34 - f36;
f90 = f34 + f36;
f91 = f38 - f40;
f92 = f38 + f40;
f93 = f42 - f44;
f94 = f42 + f44;
f95 = MUL_F(FRAC_CONST(0.7071067811865476), f92);
f96 = f32 - f95;
f97 = f32 + f95;
f98 = f90 + f94;
f99 = MUL_C(COEF_CONST(1.3065629648763766), f90);
f100 = MUL_F(FRAC_CONST(-0.9238795325112866), f98);
f101 = MUL_F(FRAC_CONST(-0.5411961001461967), f94);
f102 = f99 + f100;
f103 = f101 - f100;
f104 = f97 - f103;
f105 = f97 + f103;
f106 = f96 - f102;
f107 = f96 + f102;
f108 = MUL_F(FRAC_CONST(0.7071067811865476), f91);
f109 = f46 - f108;
f110 = f46 + f108;
f111 = f93 + f89;
f112 = MUL_C(COEF_CONST(1.3065629648763766), f93);
f113 = MUL_F(FRAC_CONST(-0.9238795325112866), f111);
f114 = MUL_F(FRAC_CONST(-0.5411961001461967), f89);
f115 = f112 + f113;
f116 = f114 - f113;
f117 = f110 - f116;
f118 = f110 + f116;
f119 = f109 - f115;
f120 = f109 + f115;
f121 = f118 + f105;
f122 = MUL_F(FRAC_CONST(-0.8971675863426361), f118);
f123 = MUL_F(FRAC_CONST(0.9951847266721968), f121);
f124 = MUL_C(COEF_CONST(1.0932018670017576), f105);
y[2] = f122 + f123;
y[30] = f124 - f123;
f127 = f107 - f120;
f128 = MUL_F(FRAC_CONST(-0.6666556584777466), f120);
f129 = MUL_F(FRAC_CONST(0.9569403357322089), f127);
f130 = MUL_C(COEF_CONST(1.2472250129866713), f107);
y[6] = f129 - f128;
y[26] = f130 - f129;
f133 = f119 + f106;
f134 = MUL_F(FRAC_CONST(-0.4105245275223571), f119);
f135 = MUL_F(FRAC_CONST(0.8819212643483549), f133);
f136 = MUL_C(COEF_CONST(1.3533180011743529), f106);
y[10] = f134 + f135;
y[22] = f136 - f135;
f139 = f104 - f117;
f140 = MUL_F(FRAC_CONST(-0.1386171691990915), f117);
f141 = MUL_F(FRAC_CONST(0.7730104533627370), f139);
f142 = MUL_C(COEF_CONST(1.4074037375263826), f104);
y[14] = f141 - f140;
y[18] = f142 - f141;
f145 = f2 - f4;
f146 = f2 + f4;
f147 = f6 - f8;
f148 = f6 + f8;
f149 = f10 - f12;
f150 = f10 + f12;
f151 = f14 - f16;
f152 = f14 + f16;
f153 = f18 - f20;
f154 = f18 + f20;
f155 = f22 - f24;
f156 = f22 + f24;
f157 = f26 - f28;
f158 = f26 + f28;
f159 = MUL_F(FRAC_CONST(0.7071067811865476), f152);
f160 = f0 - f159;
f161 = f0 + f159;
f162 = f148 + f156;
f163 = MUL_C(COEF_CONST(1.3065629648763766), f148);
f164 = MUL_F(FRAC_CONST(-0.9238795325112866), f162);
f165 = MUL_F(FRAC_CONST(-0.5411961001461967), f156);
f166 = f163 + f164;
f167 = f165 - f164;
f168 = f161 - f167;
f169 = f161 + f167;
f170 = f160 - f166;
f171 = f160 + f166;
f172 = f146 + f158;
f173 = MUL_C(COEF_CONST(1.1758756024193588), f146);
f174 = MUL_F(FRAC_CONST(-0.9807852804032304), f172);
f175 = MUL_F(FRAC_CONST(-0.7856949583871021), f158);
f176 = f173 + f174;
f177 = f175 - f174;
f178 = f150 + f154;
f179 = MUL_C(COEF_CONST(1.3870398453221473), f150);
f180 = MUL_F(FRAC_CONST(-0.8314696123025455), f178);
f181 = MUL_F(FRAC_CONST(-0.2758993792829436), f154);
f182 = f179 + f180;
f183 = f181 - f180;
f184 = f177 - f183;
f185 = f177 + f183;
f186 = MUL_F(FRAC_CONST(0.7071067811865476), f184);
f187 = f176 - f182;
f188 = f176 + f182;
f189 = MUL_F(FRAC_CONST(0.7071067811865476), f188);
f190 = f186 - f189;
f191 = f186 + f189;
f192 = f169 - f185;
f193 = f169 + f185;
f194 = f171 - f191;
f195 = f171 + f191;
f196 = f170 - f190;
f197 = f170 + f190;
f198 = f168 - f187;
f199 = f168 + f187;
f200 = MUL_F(FRAC_CONST(0.7071067811865476), f151);
f201 = f30 - f200;
f202 = f30 + f200;
f203 = f155 + f147;
f204 = MUL_C(COEF_CONST(1.3065629648763766), f155);
f205 = MUL_F(FRAC_CONST(-0.9238795325112866), f203);
f206 = MUL_F(FRAC_CONST(-0.5411961001461967), f147);
f207 = f204 + f205;
f208 = f206 - f205;
f209 = f202 - f208;
f210 = f202 + f208;
f211 = f201 - f207;
f212 = f201 + f207;
f213 = f157 + f145;
f214 = MUL_C(COEF_CONST(1.1758756024193588), f157);
f215 = MUL_F(FRAC_CONST(-0.9807852804032304), f213);
f216 = MUL_F(FRAC_CONST(-0.7856949583871021), f145);
f217 = f214 + f215;
f218 = f216 - f215;
f219 = f153 + f149;
f220 = MUL_C(COEF_CONST(1.3870398453221473), f153);
f221 = MUL_F(FRAC_CONST(-0.8314696123025455), f219);
f222 = MUL_F(FRAC_CONST(-0.2758993792829436), f149
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -