📄 sbr_dct.c
字号:
f34 = f31 + f32;
f35 = f33 - f32;
f36 = x[12] + x[3];
f37 = MUL_C(COEF_CONST(1.2784339185752409), x[12]);
f38 = MUL_F(FRAC_CONST(-0.3368898533922200), f36);
f39 = MUL_F(FRAC_CONST(0.6046542117908008), x[3]);
f40 = f37 + f38;
f41 = f39 - f38;
f42 = x[14] + x[1];
f43 = MUL_C(COEF_CONST(1.1359069844201433), x[14]);
f44 = MUL_F(FRAC_CONST(-0.1467304744553624), f42);
f45 = MUL_F(FRAC_CONST(0.8424460355094185), x[1]);
f46 = f43 + f44;
f47 = f45 - f44;
f48 = f5 - f29;
f49 = f5 + f29;
f50 = f4 - f28;
f51 = f4 + f28;
f52 = f11 - f35;
f53 = f11 + f35;
f54 = f10 - f34;
f55 = f10 + f34;
f56 = f17 - f41;
f57 = f17 + f41;
f58 = f16 - f40;
f59 = f16 + f40;
f60 = f23 - f47;
f61 = f23 + f47;
f62 = f22 - f46;
f63 = f22 + f46;
f64 = f48 + f50;
f65 = MUL_C(COEF_CONST(1.1758756024193588), f48);
f66 = MUL_F(FRAC_CONST(-0.9807852804032304), f64);
f67 = MUL_F(FRAC_CONST(-0.7856949583871021), f50);
f68 = f65 + f66;
f69 = f67 - f66;
f70 = f52 + f54;
f71 = MUL_C(COEF_CONST(1.3870398453221475), f52);
f72 = MUL_F(FRAC_CONST(-0.5555702330196022), f70);
f73 = MUL_F(FRAC_CONST(0.2758993792829431), f54);
f74 = f71 + f72;
f75 = f73 - f72;
f76 = f56 + f58;
f77 = MUL_F(FRAC_CONST(0.7856949583871022), f56);
f78 = MUL_F(FRAC_CONST(0.1950903220161283), f76);
f79 = MUL_C(COEF_CONST(1.1758756024193586), f58);
f80 = f77 + f78;
f81 = f79 - f78;
f82 = f60 + f62;
f83 = MUL_F(FRAC_CONST(-0.2758993792829430), f60);
f84 = MUL_F(FRAC_CONST(0.8314696123025452), f82);
f85 = MUL_C(COEF_CONST(1.3870398453221475), f62);
f86 = f83 + f84;
f87 = f85 - f84;
f88 = f49 - f57;
f89 = f49 + f57;
f90 = f51 - f59;
f91 = f51 + f59;
f92 = f53 - f61;
f93 = f53 + f61;
f94 = f55 - f63;
f95 = f55 + f63;
f96 = f69 - f81;
f97 = f69 + f81;
f98 = f68 - f80;
f99 = f68 + f80;
f100 = f75 - f87;
f101 = f75 + f87;
f102 = f74 - f86;
f103 = f74 + f86;
f104 = f88 + f90;
f105 = MUL_C(COEF_CONST(1.3065629648763766), f88);
f106 = MUL_F(FRAC_CONST(-0.9238795325112866), f104);
f107 = MUL_F(FRAC_CONST(-0.5411961001461967), f90);
f108 = f105 + f106;
f109 = f107 - f106;
f110 = f92 + f94;
f111 = MUL_F(FRAC_CONST(0.5411961001461969), f92);
f112 = MUL_F(FRAC_CONST(0.3826834323650898), f110);
f113 = MUL_C(COEF_CONST(1.3065629648763766), f94);
f114 = f111 + f112;
f115 = f113 - f112;
f116 = f96 + f98;
f117 = MUL_C(COEF_CONST(1.3065629648763766), f96);
f118 = MUL_F(FRAC_CONST(-0.9238795325112866), f116);
f119 = MUL_F(FRAC_CONST(-0.5411961001461967), f98);
f120 = f117 + f118;
f121 = f119 - f118;
f122 = f100 + f102;
f123 = MUL_F(FRAC_CONST(0.5411961001461969), f100);
f124 = MUL_F(FRAC_CONST(0.3826834323650898), f122);
f125 = MUL_C(COEF_CONST(1.3065629648763766), f102);
f126 = f123 + f124;
f127 = f125 - f124;
f128 = f89 - f93;
y[0] = f89 + f93;
f130 = f91 - f95;
y[15] = f91 + f95;
f132 = f109 - f115;
y[3] = f109 + f115;
f134 = f108 - f114;
y[12] = f108 + f114;
f136 = f97 - f101;
y[1] = f97 + f101;
f138 = f99 - f103;
y[14] = f99 + f103;
f140 = f121 - f127;
y[2] = f121 + f127;
f142 = f120 - f126;
y[13] = f120 + f126;
f144 = f128 - f130;
f145 = f128 + f130;
y[8] = MUL_F(FRAC_CONST(0.7071067811865474), f144);
y[7] = MUL_F(FRAC_CONST(0.7071067811865474), f145);
f148 = f132 - f134;
f149 = f132 + f134;
y[11] = MUL_F(FRAC_CONST(0.7071067811865474), f148);
y[4] = MUL_F(FRAC_CONST(0.7071067811865474), f149);
f152 = f136 - f138;
f153 = f136 + f138;
y[9] = MUL_F(FRAC_CONST(0.7071067811865474), f152);
y[6] = MUL_F(FRAC_CONST(0.7071067811865474), f153);
f156 = f140 - f142;
f157 = f140 + f142;
y[10] = MUL_F(FRAC_CONST(0.7071067811865474), f156);
y[5] = MUL_F(FRAC_CONST(0.7071067811865474), f157);
}
void DCT3_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 f61, f62, f63, f64, f65, f66, f67, f68, f69, f70;
real_t f71, f72, f73, f74, f75, f76, f77, f78, f79, f80;
real_t f81, f82, f83, f84, f85, f86, f87, f88, f89, f90;
real_t f91, f92, f93, f94, f95, f96, f97, f98, f99, f100;
real_t f101, f102, f103, f104, f105, f106, f107, f108, f109, f110;
real_t f111, f112, f113, f114, f115, f116, f117, f118, f119, f120;
real_t f121, f122, f123, f124, f125, f126, f127, f128, f129, f130;
real_t f131, f132, f133, f134, f135, f136, f137, f138, f139, f140;
real_t f141, f142, f143, f144, f145, f146, f147, f148, f149, f150;
real_t f151, f152, f153, f154, f155, f156, f157, f158, f159, f160;
real_t f161, f162, f163, f164, f165, f166, f167, f168, f169, f170;
real_t f171, f172, f173, f174, f175, f176, f177, f178, f179, f180;
real_t f181, f182, f183, f184, f185, f186, f187, f188, f189, f190;
real_t f191, f192, f193, f194, f195, f196, f197, f198, f199, f200;
real_t f201, f202, f203, f204, f205, f206, f207, f208, f209, f210;
real_t f211, f212, f213, f214, f215, f216, f217, f218, f219, f220;
real_t f221, f222, f223, f224, f225, f226, f227, f228, f229, f230;
real_t f231, f232, f233, f234, f235, f236, f237, f238, f239, f240;
real_t f241, f242, f243, f244, f245, f246, f247, f248, f249, f250;
real_t f251, f252, f253, f254, f255, f256, f257, f258, f259, f260;
real_t f261, f262, f263, f264, f265, f266, f267, f268, f269, f270;
real_t f271, f272;
f0 = MUL_F(x[16], FRAC_CONST(0.7071067811865476));
f1 = x[0] - f0;
f2 = x[0] + f0;
f3 = x[8] + x[24];
f4 = MUL_C(x[8], COEF_CONST(1.3065629648763766));
f5 = MUL_F(f3, FRAC_CONST((-0.9238795325112866)));
f6 = MUL_F(x[24], FRAC_CONST((-0.5411961001461967)));
f7 = f4 + f5;
f8 = f6 - f5;
f9 = f2 - f8;
f10 = f2 + f8;
f11 = f1 - f7;
f12 = f1 + f7;
f13 = x[4] + x[28];
f14 = MUL_C(x[4], COEF_CONST(1.1758756024193588));
f15 = MUL_F(f13, FRAC_CONST((-0.9807852804032304)));
f16 = MUL_F(x[28], FRAC_CONST((-0.7856949583871021)));
f17 = f14 + f15;
f18 = f16 - f15;
f19 = x[12] + x[20];
f20 = MUL_C(x[12], COEF_CONST(1.3870398453221473));
f21 = MUL_F(f19, FRAC_CONST((-0.8314696123025455)));
f22 = MUL_F(x[20], FRAC_CONST((-0.2758993792829436)));
f23 = f20 + f21;
f24 = f22 - f21;
f25 = f18 - f24;
f26 = f18 + f24;
f27 = MUL_F(f25, FRAC_CONST(0.7071067811865476));
f28 = f17 - f23;
f29 = f17 + f23;
f30 = MUL_F(f29, FRAC_CONST(0.7071067811865476));
f31 = f27 - f30;
f32 = f27 + f30;
f33 = f10 - f26;
f34 = f10 + f26;
f35 = f12 - f32;
f36 = f12 + f32;
f37 = f11 - f31;
f38 = f11 + f31;
f39 = f9 - f28;
f40 = f9 + f28;
f41 = x[2] + x[30];
f42 = MUL_C(x[2], COEF_CONST(1.0932018670017569));
f43 = MUL_F(f41, FRAC_CONST((-0.9951847266721969)));
f44 = MUL_F(x[30], FRAC_CONST((-0.8971675863426368)));
f45 = f42 + f43;
f46 = f44 - f43;
f47 = x[6] + x[26];
f48 = MUL_C(x[6], COEF_CONST(1.2472250129866711));
f49 = MUL_F(f47, FRAC_CONST((-0.9569403357322089)));
f50 = MUL_F(x[26], FRAC_CONST((-0.6666556584777469)));
f51 = f48 + f49;
f52 = f50 - f49;
f53 = x[10] + x[22];
f54 = MUL_C(x[10], COEF_CONST(1.3533180011743526));
f55 = MUL_F(f53, FRAC_CONST((-0.8819212643483551)));
f56 = MUL_F(x[22], FRAC_CONST((-0.4105245275223575)));
f57 = f54 + f55;
f58 = f56 - f55;
f59 = x[14] + x[18];
f60 = MUL_C(x[14], COEF_CONST(1.4074037375263826));
f61 = MUL_F(f59, FRAC_CONST((-0.7730104533627369)));
f62 = MUL_F(x[18], FRAC_CONST((-0.1386171691990913)));
f63 = f60 + f61;
f64 = f62 - f61;
f65 = f46 - f64;
f66 = f46 + f64;
f67 = f52 - f58;
f68 = f52 + f58;
f69 = f66 - f68;
f70 = f66 + f68;
f71 = MUL_F(f69, FRAC_CONST(0.7071067811865476));
f72 = f65 + f67;
f73 = MUL_C(f65, COEF_CONST(1.3065629648763766));
f74 = MUL_F(f72, FRAC_CONST((-0.9238795325112866)));
f75 = MUL_F(f67, FRAC_CONST((-0.5411961001461967)));
f76 = f73 + f74;
f77 = f75 - f74;
f78 = f45 - f63;
f79 = f45 + f63;
f80 = f51 - f57;
f81 = f51 + f57;
f82 = f79 + f81;
f83 = MUL_C(f79, COEF_CONST(1.3065629648763770));
f84 = MUL_F(f82, FRAC_CONST((-0.3826834323650904)));
f85 = MUL_F(f81, FRAC_CONST(0.5411961001461961));
f86 = f83 + f84;
f87 = f85 - f84;
f88 = f78 - f80;
f89 = f78 + f80;
f90 = MUL_F(f89, FRAC_CONST(0.7071067811865476));
f91 = f77 - f87;
f92 = f77 + f87;
f93 = f71 - f90;
f94 = f71 + f90;
f95 = f76 - f86;
f96 = f76 + f86;
f97 = f34 - f70;
f98 = f34 + f70;
f99 = f36 - f92;
f100 = f36 + f92;
f101 = f38 - f91;
f102 = f38 + f91;
f103 = f40 - f94;
f104 = f40 + f94;
f105 = f39 - f93;
f106 = f39 + f93;
f107 = f37 - f96;
f108 = f37 + f96;
f109 = f35 - f95;
f110 = f35 + f95;
f111 = f33 - f88;
f112 = f33 + f88;
f113 = x[1] + x[31];
f114 = MUL_C(x[1], COEF_CONST(1.0478631305325901));
f115 = MUL_F(f113, FRAC_CONST((-0.9987954562051724)));
f116 = MUL_F(x[31], FRAC_CONST((-0.9497277818777548)));
f117 = f114 + f115;
f118 = f116 - f115;
f119 = x[5] + x[27];
f120 = MUL_C(x[5], COEF_CONST(1.2130114330978077));
f121 = MUL_F(f119, FRAC_CONST((-0.9700312531945440)));
f122 = MUL_F(x[27], FRAC_CONST((-0.7270510732912803)));
f123 = f120 + f121;
f124 = f122 - f121;
f125 = x[9] + x[23];
f126 = MUL_C(x[9], COEF_CONST(1.3315443865537255));
f127 = MUL_F(f125, FRAC_CONST((-0.9039892931234433)));
f128 = MUL_F(x[23], FRAC_CONST((-0.4764341996931612)));
f129 = f126 + f127;
f130 = f128 - f127;
f131 = x[13] + x[19];
f132 = MUL_C(x[13], COEF_CONST(1.3989068359730781));
f133 = MUL_F(f131, FRAC_CONST((-0.8032075314806453)));
f134 = MUL_F(x[19], FRAC_CONST((-0.2075082269882124)));
f135 = f132 + f133;
f136 = f134 - f133;
f137 = x[17] + x[15];
f138 = MUL_C(x[17], COEF_CONST(1.4125100802019777));
f139 = MUL_F(f137, FRAC_CONST((-0.6715589548470187)));
f140 = MUL_F(x[15], FRAC_CONST(0.0693921705079402));
f141 = f138 + f139;
f142 = f140 - f139;
f143 = x[21] + x[11];
f144 = MUL_C(x[21], COEF_CONST(1.3718313541934939));
f145 = MUL_F(f143, FRAC_CONST((-0.5141027441932219)));
f146 = MUL_F(x[11], FRAC_CONST(0.3436258658070501));
f147 = f144 + f145;
f148 = f146 - f145;
f149 = x[25] + x[7];
f150 = MUL_C(x[25], COEF_CONST(1.2784339185752409));
f151 = MUL_F(f149, FRAC_CONST((-0.3368898533922200)));
f152 = MUL_F(x[7], FRAC_CONST(0.6046542117908008));
f153 = f150 + f151;
f154 = f152 - f151;
f155 = x[29] + x[3];
f156 = MUL_C(x[29], COEF_CONST(1.1359069844201433));
f157 = MUL_F(f155, FRAC_CONST((-0.1467304744553624)));
f158 = MUL_F(x[3], FRAC_CONST(0.8424460355094185));
f159 = f156 + f157;
f160 = f158 - f157;
f161 = f118 - f142;
f162 = f118 + f142;
f163 = f117 - f141;
f164 = f117 + f141;
f165 = f124 - f148;
f166 = f124 + f148;
f167 = f123 - f147;
f168 = f123 + f147;
f169 = f130 - f154;
f170 = f130 + f154;
f171 = f129 - f153;
f172 = f129 + f153;
f173 = f136 - f160;
f174 = f136 + f160;
f175 = f135 - f159;
f176 = f135 + f159;
f177 = f161 + f163;
f178 = MUL_C(f161, COEF_CONST(1.1758756024193588));
f179 = MUL_F(f177, FRAC_CONST((-0.9807852804032304)));
f180 = MUL_F(f163, FRAC_CONST((-0.7856949583871021)));
f181 = f178 + f179;
f182 = f180 - f179;
f183 = f165 + f167;
f184 = MUL_C(f165, COEF_CONST(1.3870398453221475));
f185 = MUL_F(f183, FRAC_CONST((-0.5555702330196022)));
f186 = MUL_F(f167, FRAC_CONST(0.2758993792829431));
f187 = f184 + f185;
f188 = f186 - f185;
f189 = f169 + f171;
f190 = MUL_F(f169, FRAC_CONST(0.7856949583871022));
f191 = MUL_F(f189, FRAC_CONST(0.1950903220161283));
f192 = MUL_C(f171, COEF_CONST(1.1758756024193586));
f193 = f190 + f191;
f194 = f192 - f191;
f195 = f173 + f175;
f196 = MUL_F(f173, FRAC_CONST((-0.2758993792829430)));
f197 = MUL_F(f195, FRAC_CONST(0.8314696123025452));
f198 = MUL_C(f175, COEF_CONST(1.3870398453221475));
f199 = f196 + f197;
f200 = f198 - f197;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -