?? synthesis_filter.cc
字號:
/* File: synthesis_filter.cc*/#include <stdio.h>#include <stdlib.h>#include <fstream.h>#ifdef IRIX#include <dmedia/audio.h>#endif#ifdef SOLARIS#include <sys/audioio.h>#endif#include "athread.hh"#include "error.hh"#include "debug.hh"#include "util.hh"#include "sync.hh"#include "mpeg2const.hh"#include "mpeg2buff.hh"#include "astream.hh"#include "crc.hh"#include "header.hh"#include "obuffer.hh"#include "synthesis_filter.hh"const real SynthesisFilter::n[32][31] = { { 0.707106781, 0.671558955, 0.634393284, 0.595699304, 0.555570233, 0.514102744, 0.471396737, 0.427555093, 0.382683432, 0.336889853, 0.290284677, 0.242980180, 0.195090322, 0.146730474, 0.098017140, 0.049067674, -0.740951126, -0.773010454, -0.803207532, -0.831469612, -0.857728610, -0.881921265, -0.903989293, -0.923879533, -0.941544065, -0.956940336, -0.970031253, -0.980785280, -0.989176510, -0.995184727, -0.998795456 }, { -0.707106781, -0.803207532, -0.881921265, -0.941544065, -0.980785280, -0.998795456, -0.995184727, -0.970031253, -0.923879532, -0.857728610, -0.773010453, -0.671558954, -0.555570233, -0.427555093, -0.290284677, -0.146730474, 0.595699304, 0.471396737, 0.336889853, 0.195090322, 0.049067674, -0.098017141, -0.242980180, -0.382683433, -0.514102744, -0.634393284, -0.740951126, -0.831469612, -0.903989293, -0.956940336, -0.989176510 }, { -0.707106781, -0.514102744, -0.290284677, -0.049067674, 0.195090323, 0.427555094, 0.634393285, 0.803207532, 0.923879533, 0.989176510, 0.995184727, 0.941544065, 0.831469612, 0.671558955, 0.471396737, 0.242980180, 0.857728610, 0.956940336, 0.998795456, 0.980785280, 0.903989293, 0.773010453, 0.595699304, 0.382683432, 0.146730474, -0.098017141, -0.336889854, -0.555570233, -0.740951126, -0.881921265, -0.970031253 }, { 0.707106782, 0.903989293, 0.995184727, 0.970031253, 0.831469612, 0.595699304, 0.290284677, -0.049067675, -0.382683433, -0.671558955, -0.881921265, -0.989176510, -0.980785280, -0.857728610, -0.634393284, -0.336889853, -0.427555093, -0.098017140, 0.242980181, 0.555570234, 0.803207532, 0.956940336, 0.998795456, 0.923879532, 0.740951125, 0.471396737, 0.146730474, -0.195090322, -0.514102744, -0.773010454, -0.941544065 }, { 0.707106781, 0.336889853, -0.098017141, -0.514102744, -0.831469612, -0.989176510, -0.956940336, -0.740951125, -0.382683432, 0.049067675, 0.471396737, 0.803207532, 0.980785281, 0.970031253, 0.773010453, 0.427555093, -0.941544065, -0.995184727, -0.857728610, -0.555570233, -0.146730474, 0.290284678, 0.671558955, 0.923879533, 0.998795456, 0.881921264, 0.595699304, 0.195090322, -0.242980180, -0.634393284, -0.903989293 }, { -0.707106781, -0.970031253, -0.956940336, -0.671558954, -0.195090321, 0.336889854, 0.773010454, 0.989176510, 0.923879532, 0.595699304, 0.098017140, -0.427555094, -0.831469612, -0.998795456, -0.881921264, -0.514102744, 0.242980180, -0.290284677, -0.740951126, -0.980785280, -0.941544065, -0.634393284, -0.146730474, 0.382683433, 0.803207532, 0.995184727, 0.903989293, 0.555570233, 0.049067674, -0.471396737, -0.857728610 }, { -0.707106781, -0.146730474, 0.471396737, 0.903989293, 0.980785280, 0.671558955, 0.098017140, -0.514102744, -0.923879533, -0.970031253, -0.634393284, -0.049067674, 0.555570234, 0.941544065, 0.956940336, 0.595699304, 0.989176510, 0.881921264, 0.427555093, -0.195090322, -0.740951126, -0.995184727, -0.857728610, -0.382683432, 0.242980181, 0.773010454, 0.998795456, 0.831469612, 0.336889853, -0.290284677, -0.803207532 }, { 0.707106782, 0.998795456, 0.773010453, 0.146730474, -0.555570233, -0.970031253, -0.881921264, -0.336889853, 0.382683433, 0.903989293, 0.956940336, 0.514102744, -0.195090322, -0.803207532, -0.995184727, -0.671558954, -0.049067674, 0.634393285, 0.989176510, 0.831469612, 0.242980180, -0.471396737, -0.941544065, -0.923879532, -0.427555093, 0.290284678, 0.857728610, 0.980785280, 0.595699304, -0.098017141, -0.740951126 }, { 0.707106781, -0.049067675, -0.773010454, -0.989176510, -0.555570233, 0.242980181, 0.881921265, 0.941544065, 0.382683432, -0.427555094, -0.956940336, -0.857728610, -0.195090321, 0.595699305, 0.995184727, 0.740951125, -0.998795456, -0.634393284, 0.146730475, 0.831469613, 0.970031253, 0.471396737, -0.336889854, -0.923879533, -0.903989293, -0.290284677, 0.514102745, 0.980785281, 0.803207531, 0.098017140, -0.671558955 }, { -0.707106781, -0.989176510, -0.471396736, 0.427555094, 0.980785281, 0.740951125, -0.098017141, -0.857728610, -0.923879532, -0.242980179, 0.634393285, 0.998795456, 0.555570233, -0.336889854, -0.956940336, -0.803207531, -0.146730475, -0.881921265, -0.903989293, -0.195090321, 0.671558955, 0.995184727, 0.514102744, -0.382683433, -0.970031253, -0.773010453, 0.049067675, 0.831469613, 0.941544065, 0.290284677, -0.595699305 }, { -0.707106781, 0.242980181, 0.956940336, 0.740951125, -0.195090322, -0.941544065, -0.773010453, 0.146730475, 0.923879533, 0.803207531, -0.098017141, -0.903989293, -0.831469612, 0.049067675, 0.881921265, 0.857728610, 0.970031253, 0.290284677, -0.671558955, -0.980785280, -0.336889853, 0.634393285, 0.989176510, 0.382683432, -0.595699305, -0.995184727, -0.427555093, 0.555570234, 0.998795456, 0.471396737, -0.514102744 }, { 0.707106782, 0.941544065, 0.098017140, -0.857728610, -0.831469612, 0.146730475, 0.956940336, 0.671558955, -0.382683433, -0.998795456, -0.471396736, 0.595699305, 0.980785280, 0.242980180, -0.773010454, -0.903989293, 0.336889854, 0.995184727, 0.514102744, -0.555570233, -0.989176510, -0.290284677, 0.740951126, 0.923879532, 0.049067674, -0.881921265, -0.803207531, 0.195090323, 0.970031253, 0.634393284, -0.427555094 }, { 0.707106781, -0.427555094, -0.995184727, -0.242980179, 0.831469613, 0.803207531, -0.290284677, -0.998795456, -0.382683432, 0.740951126, 0.881921264, -0.146730475, -0.980785280, -0.514102744, 0.634393285, 0.941544065, -0.903989293, 0.098017141, 0.970031253, 0.555570233, -0.595699305, -0.956940336, -0.049067674, 0.923879533, 0.671558955, -0.471396737, -0.989176510, -0.195090321, 0.857728610, 0.773010453, -0.336889854 }, { -0.707106781, -0.857728610, 0.290284678, 0.998795456, 0.195090322, -0.903989293, -0.634393284, 0.595699305, 0.923879532, -0.146730475, -0.995184727, -0.336889853, 0.831469613, 0.740951125, -0.471396737, -0.970031253, -0.514102744, -0.956940336, 0.049067675, 0.980785281, 0.427555093, -0.773010454, -0.803207531, 0.382683433, 0.989176510, 0.098017140, -0.941544065, -0.555570233, 0.671558955, 0.881921264, -0.242980180 }, { -0.707106781, 0.595699305, 0.881921264, -0.336889854, -0.980785280, 0.049067675, 0.995184727, 0.242980180, -0.923879533, -0.514102744, 0.773010454, 0.740951125, -0.555570233, -0.903989293, 0.290284678, 0.989176510, 0.803207531, -0.471396737, -0.941544065, 0.195090323, 0.998795456, 0.098017140, -0.970031253, -0.382683432, 0.857728610, 0.634393284, -0.671558955, -0.831469612, 0.427555094, 0.956940336, -0.146730475 }, { 0.707106782, 0.740951125, -0.634393284, -0.803207531, 0.555570234, 0.857728610, -0.471396737, -0.903989293, 0.382683433, 0.941544065, -0.290284677, -0.970031253, 0.195090323, 0.989176510, -0.098017141, -0.998795456, 0.671558955, 0.773010453, -0.595699305, -0.831469612, 0.514102745, 0.881921264, -0.427555094, -0.923879532, 0.336889854, 0.956940336, -0.242980180, -0.980785280, 0.146730475, 0.995184727, -0.049067675 }, { 0.707106781, -0.740951126, -0.634393284, 0.803207532, 0.555570233, -0.857728610, -0.471396736, 0.903989293, 0.382683432, -0.941544065, -0.290284677, 0.970031253, 0.195090322, -0.989176510, -0.098017140, 0.998795456, -0.671558954, 0.773010454, 0.595699304, -0.831469612, -0.514102744, 0.881921265, 0.427555093, -0.923879533, -0.336889853, 0.956940336, 0.242980180, -0.980785280, -0.146730474, 0.995184727, 0.049067674 }, { -0.707106781, -0.595699304, 0.881921265, 0.336889853, -0.980785280, -0.049067674, 0.995184727, -0.242980180, -0.923879532, 0.514102745, 0.773010453, -0.740951126, -0.555570233, 0.903989293, 0.290284677, -0.989176510, -0.803207532, -0.471396736, 0.941544065, 0.195090322, -0.998795456, 0.098017141, 0.970031253, -0.382683433, -0.857728610, 0.634393285, 0.671558955, -0.831469612, -0.427555093, 0.956940336, 0.146730474 }, { -0.707106781, 0.857728610, 0.290284677, -0.998795456, 0.195090323, 0.903989293, -0.634393284, -0.595699304, 0.923879533, 0.146730474, -0.995184727, 0.336889854, 0.831469612, -0.740951126, -0.471396736, 0.970031253, 0.514102744, -0.956940336, -0.049067674, 0.980785280, -0.427555094, -0.773010453, 0.803207532, 0.382683432, -0.989176510, 0.098017141, 0.941544065, -0.555570233, -0.671558954, 0.881921265, 0.242980180 }, { 0.707106782, 0.427555093, -0.995184727, 0.242980181, 0.831469612, -0.803207532, -0.290284677, 0.998795456, -0.382683433, -0.740951125, 0.881921265, 0.146730474, -0.980785280, 0.514102745, 0.634393284, -0.941544065, 0.903989293, 0.098017140, -0.970031253, 0.555570234, 0.595699304, -0.956940336, 0.049067675, 0.923879532, -0.671558955, -0.471396736, 0.989176510, -0.195090322, -0.857728610, 0.773010454, 0.336889853 }, { 0.707106781, -0.941544065, 0.098017141, 0.857728610, -0.831469612, -0.146730474, 0.956940336, -0.671558955, -0.382683432, 0.998795456, -0.471396737, -0.595699304, 0.980785281, -0.242980180, -0.773010453, 0.903989293, -0.336889853, 0.995184727, -0.514102744, -0.555570233, 0.989176510, -0.290284677, -0.740951125, 0.923879533, -0.049067675, -0.881921264, 0.803207532, 0.195090322, -0.970031253, 0.634393285, 0.427555093 }, { -0.707106781, -0.242980179, 0.956940336, -0.740951126, -0.195090321, 0.941544065, -0.773010454, -0.146730474, 0.923879532, -0.803207532, -0.098017140, 0.903989293, -0.831469612, -0.049067674, 0.881921264, -0.857728610, -0.970031253, 0.290284678, 0.671558955, -0.980785280, 0.336889854, 0.634393284, -0.989176510, 0.382683433, 0.595699304, -0.995184727, 0.427555094, 0.555570233, -0.998795456, 0.471396737, 0.514102744 }, { -0.707106781, 0.989176510, -0.471396737, -0.427555093, 0.980785280, -0.740951126, -0.098017140, 0.857728610, -0.923879533, 0.242980181, 0.634393284, -0.998795456, 0.555570234, 0.336889853, -0.956940336, 0.803207532, 0.146730474, -0.881921264, 0.903989293, -0.195090322, -0.671558954, 0.995184727, -0.514102744, -0.382683432, 0.970031253, -0.773010454, -0.049067674, 0.831469612, -0.941544065, 0.290284678, 0.595699304 }, { 0.707106782, 0.049067674, -0.773010453, 0.989176510, -0.555570233, -0.242980179, 0.881921264, -0.941544065, 0.382683433, 0.427555093, -0.956940336, 0.857728610, -0.195090322, -0.595699304, 0.995184727, -0.740951126, 0.998795456, -0.634393284, -0.146730474, 0.831469612, -0.970031253, 0.471396737, 0.336889853, -0.923879532, 0.903989293, -0.290284677, -0.514102744, 0.980785280, -0.803207532, 0.098017141, 0.671558955 }, { 0.707106781, -0.998795456, 0.773010454, -0.146730475, -0.555570233, 0.970031253, -0.881921265, 0.336889854, 0.382683432, -0.903989293, 0.956940336, -0.514102744, -0.195090321, 0.803207531, -0.995184727, 0.671558955, 0.049067675, 0.634393284, -0.989176510, 0.831469613, -0.242980180, -0.471396736, 0.941544065, -0.923879533, 0.427555094, 0.290284677, -0.857728610, 0.980785281, -0.595699305, -0.098017140, 0.740951125 }, { -0.707106781, 0.146730475, 0.471396737, -0.903989293, 0.980785281, -0.671558955, 0.098017141, 0.514102744, -0.923879532, 0.970031253, -0.634393284, 0.049067675, 0.555570233, -0.941544065, 0.956940336, -0.595699305, -0.989176510, 0.881921265, -0.427555094, -0.195090321, 0.740951125, -0.995184727, 0.857728610, -0.382683433, -0.242980179, 0.773010453, -0.998795456, 0.831469613, -0.336889854, -0.290284677, 0.803207531 }, { -0.707106781, 0.970031253, -0.956940336, 0.671558955, -0.195090322, -0.336889853, 0.773010453, -0.989176510, 0.923879533, -0.595699305, 0.098017141, 0.427555093, -0.831469612, 0.998795456, -0.881921265, 0.514102745, -0.242980180, -0.290284677, 0.740951125, -0.980785280, 0.941544065, -0.634393284, 0.146730475, 0.382683432, -0.803207531, 0.995184727, -0.903989293, 0.555570234, -0.049067675, -0.471396736, 0.857728610 }, { 0.707106782, -0.336889854, -0.098017140, 0.514102744, -0.831469612, 0.989176510, -0.956940336, 0.740951126, -0.382683433, -0.049067674, 0.471396737, -0.803207531, 0.980785280, -0.970031253, 0.773010454, -0.427555094, 0.941544065, -0.995184727, 0.857728610, -0.555570233, 0.146730475, 0.290284677, -0.671558954, 0.923879532, -0.998795456, 0.881921265, -0.595699305, 0.195090323, 0.242980180, -0.634393284, 0.903989293 }, { 0.707106781, -0.903989293, 0.995184727, -0.970031253, 0.831469613, -0.595699305, 0.290284678, 0.049067674, -0.382683432, 0.671558955, -0.881921264, 0.989176510, -0.980785280, 0.857728610, -0.634393284, 0.336889854, 0.427555094, -0.098017141, -0.242980179, 0.555570233, -0.803207531, 0.956940336, -0.998795456, 0.923879533, -0.740951126, 0.471396737, -0.146730475, -0.195090321, 0.514102744, -0.773010453, 0.941544065 }, { -0.707106781, 0.514102745, -0.290284677, 0.049067675, 0.195090322, -0.427555093, 0.634393284, -0.803207531, 0.923879532, -0.989176510, 0.995184727, -0.941544065, 0.831469613, -0.671558955, 0.471396737, -0.242980180, -0.857728610, 0.956940336, -0.998795456, 0.980785281, -0.903989293, 0.773010454, -0.595699305, 0.382683433, -0.146730475, -0.098017140, 0.336889853, -0.555570233, 0.740951125, -0.881921264, 0.970031253 }, { -0.707106781, 0.803207531, -0.881921264, 0.941544065, -0.980785280, 0.998795456, -0.995184727, 0.970031253, -0.923879533, 0.857728610, -0.773010454, 0.671558955, -0.555570233, 0.427555094, -0.290284677, 0.146730475, -0.595699305, 0.471396737, -0.336889854, 0.195090323, -0.049067675, -0.098017140, 0.242980180, -0.382683432, 0.514102744, -0.634393284, 0.740951125, -0.831469612, 0.903989293, -0.956940336, 0.989176510 }, { 0.707106782, -0.671558955, 0.634393285, -0.595699305, 0.555570234, -0.514102744, 0.471396737, -0.427555094, 0.382683433, -0.336889854, 0.290284678, -0.242980180, 0.195090323, -0.146730475, 0.098017141, -0.049067675, 0.740951125, -0.773010453, 0.803207531, -0.831469612, 0.857728610, -0.881921264, 0.903989293, -0.923879532, 0.941544065, -0.956940336, 0.970031253, -0.980785280, 0.989176510, -0.995184727, 0.998795456 }};const real SynthesisFilter::d[512] = { // Warning: These values are not in the same order // as in Annex 3-B.3 of the ISO/IEC DIS 11172-3 0.000000000, -0.000442505, 0.003250122, -0.007003784, 0.031082153, -0.078628540, 0.100311279, -0.572036743, 1.144989014, 0.572036743, 0.100311279, 0.078628540, 0.031082153, 0.007003784, 0.003250122, 0.000442505, -0.000015259, -0.000473022, 0.003326416, -0.007919312, 0.030517578, -0.084182739, 0.090927124, -0.600219727, 1.144287109, 0.543823242, 0.108856201, 0.073059082, 0.031478882, 0.006118774, 0.003173828, 0.000396729, -0.000015259, -0.000534058, 0.003387451, -0.008865356, 0.029785156, -0.089706421, 0.080688477, -0.628295898, 1.142211914, 0.515609741, 0.116577148, 0.067520142, 0.031738281, 0.005294800, 0.003082275, 0.000366211, -0.000015259, -0.000579834, 0.003433228, -0.009841919, 0.028884888, -0.095169067, 0.069595337, -0.656219482,
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -