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

📄 fftsg.cpp

📁 从FFMPEG转换而来的H264解码程序,VC下编译..
💻 CPP
📖 第 1 页 / 共 5 页
字号:
                                        xr = a[j1];
                                        xi = -a[j1 + 1];
                                        yr = a[k1];
                                        yi = -a[k1 + 1];
                                        a[j1] = yr;
                                        a[j1 + 1] = yi;
                                        a[k1] = xr;
                                        a[k1 + 1] = xi;
                                }
                                k1 = 2 * k + ip[k];
                                a[k1 + 1] = -a[k1 + 1];
                                j1 = k1 + m2;
                                k1 = j1 + m2;
                                xr = a[j1];
                                xi = -a[j1 + 1];
                                yr = a[k1];
                                yi = -a[k1 + 1];
                                a[j1] = yr;
                                a[j1 + 1] = yi;
                                a[k1] = xr;
                                a[k1 + 1] = xi;
                                k1 += m2;
                                a[k1 + 1] = -a[k1 + 1];
                        }
                } else {
                        a[1] = -a[1];
                        a[m2 + 1] = -a[m2 + 1];
                        for (k = 1; k < m; k++) {
                                for (j = 0; j < k; j++) {
                                        j1 = 2 * j + ip[k];
                                        k1 = 2 * k + ip[j];
                                        xr = a[j1];
                                        xi = -a[j1 + 1];
                                        yr = a[k1];
                                        yi = -a[k1 + 1];
                                        a[j1] = yr;
                                        a[j1 + 1] = yi;
                                        a[k1] = xr;
                                        a[k1 + 1] = xi;
                                        j1 += m2;
                                        k1 += m2;
                                        xr = a[j1];
                                        xi = -a[j1 + 1];
                                        yr = a[k1];
                                        yi = -a[k1 + 1];
                                        a[j1] = yr;
                                        a[j1 + 1] = yi;
                                        a[k1] = xr;
                                        a[k1 + 1] = xi;
                                }
                                k1 = 2 * k + ip[k];
                                a[k1 + 1] = -a[k1 + 1];
                                a[k1 + m2 + 1] = -a[k1 + m2 + 1];
                        }
                }
        }


        static void bitrv216(REAL *a)
        {
                REAL x1r, x1i, x2r, x2i, x3r, x3i, x4r, x4i,
                        x5r, x5i, x7r, x7i, x8r, x8i, x10r, x10i,
                        x11r, x11i, x12r, x12i, x13r, x13i, x14r, x14i;

                x1r = a[2];
                x1i = a[3];
                x2r = a[4];
                x2i = a[5];
                x3r = a[6];
                x3i = a[7];
                x4r = a[8];
                x4i = a[9];
                x5r = a[10];
                x5i = a[11];
                x7r = a[14];
                x7i = a[15];
                x8r = a[16];
                x8i = a[17];
                x10r = a[20];
                x10i = a[21];
                x11r = a[22];
                x11i = a[23];
                x12r = a[24];
                x12i = a[25];
                x13r = a[26];
                x13i = a[27];
                x14r = a[28];
                x14i = a[29];
                a[2] = x8r;
                a[3] = x8i;
                a[4] = x4r;
                a[5] = x4i;
                a[6] = x12r;
                a[7] = x12i;
                a[8] = x2r;
                a[9] = x2i;
                a[10] = x10r;
                a[11] = x10i;
                a[14] = x14r;
                a[15] = x14i;
                a[16] = x1r;
                a[17] = x1i;
                a[20] = x5r;
                a[21] = x5i;
                a[22] = x13r;
                a[23] = x13i;
                a[24] = x3r;
                a[25] = x3i;
                a[26] = x11r;
                a[27] = x11i;
                a[28] = x7r;
                a[29] = x7i;
        }


        static void bitrv216neg(REAL *a)
        {
                REAL x1r, x1i, x2r, x2i, x3r, x3i, x4r, x4i,
                        x5r, x5i, x6r, x6i, x7r, x7i, x8r, x8i,
                        x9r, x9i, x10r, x10i, x11r, x11i, x12r, x12i,
                        x13r, x13i, x14r, x14i, x15r, x15i;

                x1r = a[2];
                x1i = a[3];
                x2r = a[4];
                x2i = a[5];
                x3r = a[6];
                x3i = a[7];
                x4r = a[8];
                x4i = a[9];
                x5r = a[10];
                x5i = a[11];
                x6r = a[12];
                x6i = a[13];
                x7r = a[14];
                x7i = a[15];
                x8r = a[16];
                x8i = a[17];
                x9r = a[18];
                x9i = a[19];
                x10r = a[20];
                x10i = a[21];
                x11r = a[22];
                x11i = a[23];
                x12r = a[24];
                x12i = a[25];
                x13r = a[26];
                x13i = a[27];
                x14r = a[28];
                x14i = a[29];
                x15r = a[30];
                x15i = a[31];
                a[2] = x15r;
                a[3] = x15i;
                a[4] = x7r;
                a[5] = x7i;
                a[6] = x11r;
                a[7] = x11i;
                a[8] = x3r;
                a[9] = x3i;
                a[10] = x13r;
                a[11] = x13i;
                a[12] = x5r;
                a[13] = x5i;
                a[14] = x9r;
                a[15] = x9i;
                a[16] = x1r;
                a[17] = x1i;
                a[18] = x14r;
                a[19] = x14i;
                a[20] = x6r;
                a[21] = x6i;
                a[22] = x10r;
                a[23] = x10i;
                a[24] = x2r;
                a[25] = x2i;
                a[26] = x12r;
                a[27] = x12i;
                a[28] = x4r;
                a[29] = x4i;
                a[30] = x8r;
                a[31] = x8i;
        }


        static void bitrv208(REAL *a)
        {
                REAL x1r, x1i, x3r, x3i, x4r, x4i, x6r, x6i;

                x1r = a[2];
                x1i = a[3];
                x3r = a[6];
                x3i = a[7];
                x4r = a[8];
                x4i = a[9];
                x6r = a[12];
                x6i = a[13];
                a[2] = x4r;
                a[3] = x4i;
                a[6] = x6r;
                a[7] = x6i;
                a[8] = x1r;
                a[9] = x1i;
                a[12] = x3r;
                a[13] = x3i;
        }


        static void bitrv208neg(REAL *a)
        {
                REAL x1r, x1i, x2r, x2i, x3r, x3i, x4r, x4i,
                        x5r, x5i, x6r, x6i, x7r, x7i;

                x1r = a[2];
                x1i = a[3];
                x2r = a[4];
                x2i = a[5];
                x3r = a[6];
                x3i = a[7];
                x4r = a[8];
                x4i = a[9];
                x5r = a[10];
                x5i = a[11];
                x6r = a[12];
                x6i = a[13];
                x7r = a[14];
                x7i = a[15];
                a[2] = x7r;
                a[3] = x7i;
                a[4] = x3r;
                a[5] = x3i;
                a[6] = x5r;
                a[7] = x5i;
                a[8] = x1r;
                a[9] = x1i;
                a[10] = x6r;
                a[11] = x6i;
                a[12] = x2r;
                a[13] = x2i;
                a[14] = x4r;
                a[15] = x4i;
        }


        static void cftf1st(int n, REAL *a, REAL *w)
        {
                int j, j0, j1, j2, j3, k, m, mh;
                REAL wn4r, csc1, csc3, wk1r, wk1i, wk3r, wk3i,
                        wd1r, wd1i, wd3r, wd3i;
                REAL x0r, x0i, x1r, x1i, x2r, x2i, x3r, x3i,
                        y0r, y0i, y1r, y1i, y2r, y2i, y3r, y3i;

                mh = n >> 3;
                m = 2 * mh;
                j1 = m;
                j2 = j1 + m;
                j3 = j2 + m;
                x0r = a[0] + a[j2];
                x0i = a[1] + a[j2 + 1];
                x1r = a[0] - a[j2];
                x1i = a[1] - a[j2 + 1];
                x2r = a[j1] + a[j3];
                x2i = a[j1 + 1] + a[j3 + 1];
                x3r = a[j1] - a[j3];
                x3i = a[j1 + 1] - a[j3 + 1];
                a[0] = x0r + x2r;
                a[1] = x0i + x2i;
                a[j1] = x0r - x2r;
                a[j1 + 1] = x0i - x2i;
                a[j2] = x1r - x3i;
                a[j2 + 1] = x1i + x3r;
                a[j3] = x1r + x3i;
                a[j3 + 1] = x1i - x3r;
                wn4r = w[1];
                csc1 = w[2];
                csc3 = w[3];
                wd1r = 1;
                wd1i = 0;
                wd3r = 1;
                wd3i = 0;
                k = 0;
                for (j = 2; j < mh - 2; j += 4) {
                        k += 4;
                        wk1r = csc1 * (wd1r + w[k]);
                        wk1i = csc1 * (wd1i + w[k + 1]);
                        wk3r = csc3 * (wd3r + w[k + 2]);
                        wk3i = csc3 * (wd3i - w[k + 3]);
                        wd1r = w[k];
                        wd1i = w[k + 1];
                        wd3r = w[k + 2];
                        wd3i = -w[k + 3];
                        j1 = j + m;
                        j2 = j1 + m;
                        j3 = j2 + m;
                        x0r = a[j] + a[j2];
                        x0i = a[j + 1] + a[j2 + 1];
                        x1r = a[j] - a[j2];
                        x1i = a[j + 1] - a[j2 + 1];
                        y0r = a[j + 2] + a[j2 + 2];
                        y0i = a[j + 3] + a[j2 + 3];

⌨️ 快捷键说明

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