⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sbr_dct.c

📁 mpeg4 video codec mpeg4 video codec
💻 C
📖 第 1 页 / 共 5 页
字号:
/*** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com**** This program is free software; you can redistribute it and/or modify** it under the terms of the GNU General Public License as published by** the Free Software Foundation; either version 2 of the License, or** (at your option) any later version.**** This program is distributed in the hope that it will be useful,** but WITHOUT ANY WARRANTY; without even the implied warranty of** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the** GNU General Public License for more details.**** You should have received a copy of the GNU General Public License** along with this program; if not, write to the Free Software** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.**** Any non-GPL usage of this software or parts of this software is strictly** forbidden.**** Commercial non-GPL licensing of this software is possible.** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.**** $Id: sbr_dct.c,v 1.1 2006/02/23 14:38:10 kevin-fu Exp $**/#include "common.h"#ifdef SBR_DEC#ifdef _MSC_VER#pragma warning(disable:4305)#pragma warning(disable:4244)#endif#include "sbr_dct.h"#ifdef SBR_LOW_POWERvoid 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_C(COEF_CONST(0.7071067811865476), x[16]);    f1 = x[0] - f0;    f2 = x[0] + f0;    f3 = x[8] + x[24];    f4 = MUL_C(COEF_CONST(1.3065629648763766), x[8]);    f5 = MUL_C(COEF_CONST((-0.9238795325112866)), f3);    f6 = MUL_C(COEF_CONST((-0.5411961001461967)), x[24]);    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(COEF_CONST(1.1758756024193588), x[4]);    f15 = MUL_C(COEF_CONST((-0.9807852804032304)), f13);    f16 = MUL_C(COEF_CONST((-0.7856949583871021)), x[28]);    f17 = f14 + f15;    f18 = f16 - f15;    f19 = x[12] + x[20];    f20 = MUL_C(COEF_CONST(1.3870398453221473), x[12]);    f21 = MUL_C(COEF_CONST((-0.8314696123025455)), f19);    f22 = MUL_C(COEF_CONST((-0.2758993792829436)), x[20]);    f23 = f20 + f21;    f24 = f22 - f21;    f25 = f18 - f24;    f26 = f18 + f24;    f27 = MUL_C(COEF_CONST(0.7071067811865476), f25);    f28 = f17 - f23;    f29 = f17 + f23;    f30 = MUL_C(COEF_CONST(0.7071067811865476), f29);    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(COEF_CONST(1.0932018670017569), x[2]);    f43 = MUL_C(COEF_CONST((-0.9951847266721969)), f41);    f44 = MUL_C(COEF_CONST((-0.8971675863426368)), x[30]);    f45 = f42 + f43;    f46 = f44 - f43;    f47 = x[6] + x[26];    f48 = MUL_C(COEF_CONST(1.2472250129866711), x[6]);    f49 = MUL_C(COEF_CONST((-0.9569403357322089)), f47);    f50 = MUL_C(COEF_CONST((-0.6666556584777469)), x[26]);    f51 = f48 + f49;    f52 = f50 - f49;    f53 = x[10] + x[22];    f54 = MUL_C(COEF_CONST(1.3533180011743526), x[10]);    f55 = MUL_C(COEF_CONST((-0.8819212643483551)), f53);    f56 = MUL_C(COEF_CONST((-0.4105245275223575)), x[22]);    f57 = f54 + f55;    f58 = f56 - f55;    f59 = x[14] + x[18];    f60 = MUL_C(COEF_CONST(1.4074037375263826), x[14]);    f61 = MUL_C(COEF_CONST((-0.7730104533627369)), f59);    f62 = MUL_C(COEF_CONST((-0.1386171691990913)), x[18]);    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_C(COEF_CONST(0.7071067811865476), f69);    f72 = f65 + f67;    f73 = MUL_C(COEF_CONST(1.3065629648763766), f65);    f74 = MUL_C(COEF_CONST((-0.9238795325112866)), f72);    f75 = MUL_C(COEF_CONST((-0.5411961001461967)), f67);    f76 = f73 + f74;    f77 = f75 - f74;    f78 = f45 - f63;    f79 = f45 + f63;    f80 = f51 - f57;    f81 = f51 + f57;    f82 = f79 + f81;    f83 = MUL_C(COEF_CONST(1.3065629648763770), f79);    f84 = MUL_C(COEF_CONST((-0.3826834323650904)), f82);    f85 = MUL_C(COEF_CONST(0.5411961001461961), f81);    f86 = f83 + f84;    f87 = f85 - f84;    f88 = f78 - f80;    f89 = f78 + f80;    f90 = MUL_C(COEF_CONST(0.7071067811865476), f89);    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(COEF_CONST(1.0478631305325901), x[1]);    f115 = MUL_C(COEF_CONST((-0.9987954562051724)), f113);    f116 = MUL_C(COEF_CONST((-0.9497277818777548)), x[31]);    f117 = f114 + f115;    f118 = f116 - f115;    f119 = x[5] + x[27];    f120 = MUL_C(COEF_CONST(1.2130114330978077), x[5]);    f121 = MUL_C(COEF_CONST((-0.9700312531945440)), f119);    f122 = MUL_C(COEF_CONST((-0.7270510732912803)), x[27]);    f123 = f120 + f121;    f124 = f122 - f121;    f125 = x[9] + x[23];    f126 = MUL_C(COEF_CONST(1.3315443865537255), x[9]);    f127 = MUL_C(COEF_CONST((-0.9039892931234433)), f125);    f128 = MUL_C(COEF_CONST((-0.4764341996931612)), x[23]);    f129 = f126 + f127;    f130 = f128 - f127;    f131 = x[13] + x[19];    f132 = MUL_C(COEF_CONST(1.3989068359730781), x[13]);    f133 = MUL_C(COEF_CONST((-0.8032075314806453)), f131);    f134 = MUL_C(COEF_CONST((-0.2075082269882124)), x[19]);    f135 = f132 + f133;    f136 = f134 - f133;    f137 = x[17] + x[15];    f138 = MUL_C(COEF_CONST(1.4125100802019777), x[17]);    f139 = MUL_C(COEF_CONST((-0.6715589548470187)), f137);    f140 = MUL_C(COEF_CONST(0.0693921705079402), x[15]);    f141 = f138 + f139;    f142 = f140 - f139;    f143 = x[21] + x[11];    f144 = MUL_C(COEF_CONST(1.3718313541934939), x[21]);    f145 = MUL_C(COEF_CONST((-0.5141027441932219)), f143);    f146 = MUL_C(COEF_CONST(0.3436258658070501), x[11]);    f147 = f144 + f145;    f148 = f146 - f145;    f149 = x[25] + x[7];    f150 = MUL_C(COEF_CONST(1.2784339185752409), x[25]);    f151 = MUL_C(COEF_CONST((-0.3368898533922200)), f149);    f152 = MUL_C(COEF_CONST(0.6046542117908008), x[7]);    f153 = f150 + f151;    f154 = f152 - f151;    f155 = x[29] + x[3];    f156 = MUL_C(COEF_CONST(1.1359069844201433), x[29]);    f157 = MUL_C(COEF_CONST((-0.1467304744553624)), f155);    f158 = MUL_C(COEF_CONST(0.8424460355094185), x[3]);    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(COEF_CONST(1.1758756024193588), f161);    f179 = MUL_C(COEF_CONST((-0.9807852804032304)), f177);    f180 = MUL_C(COEF_CONST((-0.7856949583871021)), f163);    f181 = f178 + f179;    f182 = f180 - f179;    f183 = f165 + f167;    f184 = MUL_C(COEF_CONST(1.3870398453221475), f165);    f185 = MUL_C(COEF_CONST((-0.5555702330196022)), f183);    f186 = MUL_C(COEF_CONST(0.2758993792829431), f167);    f187 = f184 + f185;    f188 = f186 - f185;    f189 = f169 + f171;    f190 = MUL_C(COEF_CONST(0.7856949583871022), f169);    f191 = MUL_C(COEF_CONST(0.1950903220161283), f189);    f192 = MUL_C(COEF_CONST(1.1758756024193586), f171);    f193 = f190 + f191;    f194 = f192 - f191;    f195 = f173 + f175;    f196 = MUL_C(COEF_CONST((-0.2758993792829430)), f173);    f197 = MUL_C(COEF_CONST(0.8314696123025452), f195);    f198 = MUL_C(COEF_CONST(1.3870398453221475), f175);    f199 = f196 + f197;    f200 = f198 - f197;    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(COEF_CONST(1.3065629648763766), f201);    f219 = MUL_C(COEF_CONST((-0.9238795325112866)), f217);    f220 = MUL_C(COEF_CONST((-0.5411961001461967)), f203);    f221 = f218 + f219;    f222 = f220 - f219;    f223 = f205 + f207;    f224 = MUL_C(COEF_CONST(0.5411961001461969), f205);    f225 = MUL_C(COEF_CONST(0.3826834323650898), f223);    f226 = MUL_C(COEF_CONST(1.3065629648763766), f207);    f227 = f224 + f225;    f228 = f226 - f225;    f229 = f209 + f211;    f230 = MUL_C(COEF_CONST(1.3065629648763766), f209);    f231 = MUL_C(COEF_CONST((-0.9238795325112866)), f229);    f232 = MUL_C(COEF_CONST((-0.5411961001461967)), f211);    f233 = f230 + f231;    f234 = f232 - f231;    f235 = f213 + f215;    f236 = MUL_C(COEF_CONST(0.5411961001461969), f213);    f237 = MUL_C(COEF_CONST(0.3826834323650898), f235);    f238 = MUL_C(COEF_CONST(1.3065629648763766), f215);    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_C(COEF_CONST(0.7071067811865474), f257);    f260 = MUL_C(COEF_CONST(0.7071067811865474), f258);    f261 = f245 - f247;    f262 = f245 + f247;    f263 = MUL_C(COEF_CONST(0.7071067811865474), f261);    f264 = MUL_C(COEF_CONST(0.7071067811865474), f262);    f265 = f249 - f251;    f266 = f249 + f251;    f267 = MUL_C(COEF_CONST(0.7071067811865474), f265);    f268 = MUL_C(COEF_CONST(0.7071067811865474), f266);    f269 = f253 - f255;    f270 = f253 + f255;    f271 = MUL_C(COEF_CONST(0.7071067811865474), f269);    f272 = MUL_C(COEF_CONST(0.7071067811865474), f270);    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;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -