default.h
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:15k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /* $Id: default.h,v 1.3 2001/04/30 20:48:59 dmackie Exp $ */
  2. /****************************************************************************/
  3. /*   MPEG4 Visual Texture Coding (VTC) Mode Software                        */
  4. /*                                                                          */
  5. /*   This software was jointly developed by the following participants:     */
  6. /*                                                                          */
  7. /*   Single-quant,  multi-quant and flow control                            */
  8. /*   are provided by  Sarnoff Corporation                                   */
  9. /*     Iraj Sodagar   (iraj@sarnoff.com)                                    */
  10. /*     Hung-Ju Lee    (hjlee@sarnoff.com)                                   */
  11. /*     Paul Hatrack   (hatrack@sarnoff.com)                                 */
  12. /*     Shipeng Li     (shipeng@sarnoff.com)                                 */
  13. /*     Bing-Bing Chai (bchai@sarnoff.com)                                   */
  14. /*     B.S. Srinivas  (bsrinivas@sarnoff.com)                               */
  15. /*                                                                          */
  16. /*   Bi-level is provided by Texas Instruments                              */
  17. /*     Jie Liang      (liang@ti.com)                                        */
  18. /*                                                                          */
  19. /*   Shape Coding is provided by  OKI Electric Industry Co., Ltd.           */
  20. /*     Zhixiong Wu    (sgo@hlabs.oki.co.jp)                                 */
  21. /*     Yoshihiro Ueda (yueda@hlabs.oki.co.jp)                               */
  22. /*     Toshifumi Kanamaru (kanamaru@hlabs.oki.co.jp)                        */
  23. /*                                                                          */
  24. /*   OKI, Sharp, Sarnoff, TI and Microsoft contributed to bitstream         */
  25. /*   exchange and bug fixing.                                               */
  26. /*                                                                          */
  27. /*                                                                          */
  28. /* In the course of development of the MPEG-4 standard, this software       */
  29. /* module is an implementation of a part of one or more MPEG-4 tools as     */
  30. /* specified by the MPEG-4 standard.                                        */
  31. /*                                                                          */
  32. /* The copyright of this software belongs to ISO/IEC. ISO/IEC gives use     */
  33. /* of the MPEG-4 standard free license to use this  software module or      */
  34. /* modifications thereof for hardware or software products claiming         */
  35. /* conformance to the MPEG-4 standard.                                      */
  36. /*                                                                          */
  37. /* Those intending to use this software module in hardware or software      */
  38. /* products are advised that use may infringe existing  patents. The        */
  39. /* original developers of this software module and their companies, the     */
  40. /* subsequent editors and their companies, and ISO/IEC have no liability    */
  41. /* and ISO/IEC have no liability for use of this software module or         */
  42. /* modification thereof in an implementation.                               */
  43. /*                                                                          */
  44. /* Permission is granted to MPEG members to use, copy, modify,              */
  45. /* and distribute the software modules ( or portions thereof )              */
  46. /* for standardization activity within ISO/IEC JTC1/SC29/WG11.              */
  47. /*                                                                          */
  48. /* Copyright 1995, 1996, 1997, 1998 ISO/IEC                                 */
  49. /****************************************************************************/
  50. /************************************************************/
  51. /*     Sarnoff Very Low Bit Rate Still Image Coder          */
  52. /*     Copyright 1995, 1996, 1997, 1998 Sarnoff Corporation */
  53. /************************************************************/
  54. #ifndef _DEFAULT_H_
  55. #define _DEFAULT_H_
  56. #ifdef DEFINE_GLOBALS
  57. #define EXTERN
  58. #else
  59. #define EXTERN extern
  60. #endif
  61. /* Default Analysis filters -- odd symmetric */
  62. EXTERN Short DefaultAnalysisLPInt[]
  63. #ifdef DEFINE_GLOBALS
  64. = {3, -6, -16, 38, 90, 38, -16, -6, 3}
  65. #endif
  66. ;
  67. EXTERN Short DefaultAnalysisHPInt[]
  68. #ifdef DEFINE_GLOBALS
  69. = {-32, 64, -32}
  70. #endif
  71. ;
  72. EXTERN FILTER DefaultAnalysisFilterInt
  73. #ifdef DEFINE_GLOBALS
  74. ={
  75.   DWT_ODD_SYMMETRIC,
  76.   DWT_INT_TYPE,
  77.   3,
  78.   9,
  79.   DefaultAnalysisHPInt,
  80.   DefaultAnalysisLPInt,
  81.   128
  82. }
  83. #endif
  84. ;
  85. EXTERN Double DefaultAnalysisLPDbl[]
  86. #ifdef DEFINE_GLOBALS
  87. = { 0.03314563036812,  -0.06629126073624,  
  88.     -0.17677669529665,   0.41984465132952, 
  89.     0.99436891104360,   0.41984465132952,  
  90.     -0.17677669529665,  -0.06629126073624, 
  91.     0.03314563036812 }
  92. #endif
  93. ;
  94. EXTERN Double DefaultAnalysisHPDbl[]
  95. #ifdef DEFINE_GLOBALS
  96. = { -0.35355339059327,   0.70710678118655,  
  97.     -0.35355339059327 }
  98. #endif
  99. ;
  100. EXTERN FILTER DefaultAnalysisFilterDbl
  101. #ifdef DEFINE_GLOBALS
  102. ={
  103.   DWT_ODD_SYMMETRIC,
  104.   DWT_DBL_TYPE,
  105.   3,
  106.   9,
  107.   DefaultAnalysisHPDbl,
  108.   DefaultAnalysisLPDbl,
  109.   1
  110. }
  111. #endif
  112. ;
  113. /* Default Synthesis filters - odd symmtric*/
  114. EXTERN Short DefaultSynthesisHPInt[]
  115. #ifdef DEFINE_GLOBALS
  116. = {3, 6, -16, -38, 90, -38, -16, 6, 3}
  117. #endif
  118. ;
  119. EXTERN Short DefaultSynthesisLPInt[]
  120. #ifdef DEFINE_GLOBALS
  121. = {32, 64, 32}
  122. #endif
  123. ;
  124. EXTERN FILTER DefaultSynthesisFilterInt
  125. #ifdef DEFINE_GLOBALS
  126. ={
  127.   DWT_ODD_SYMMETRIC,
  128.   DWT_INT_TYPE,
  129.   9,
  130.   3,
  131.   DefaultSynthesisHPInt,
  132.   DefaultSynthesisLPInt,
  133.   128
  134. }
  135. #endif
  136. ;
  137. EXTERN Double DefaultSynthesisHPDbl[]
  138. #ifdef DEFINE_GLOBALS
  139. ={ 0.03314563036812,  0.06629126073624, 
  140.    -0.17677669529665,  -0.41984465132952, 
  141.    0.99436891104360,  -0.41984465132952, 
  142.    -0.17677669529665,  0.06629126073624, 
  143.    0.03314563036812 }
  144. #endif
  145. ;
  146. EXTERN Double DefaultSynthesisLPDbl[]
  147. #ifdef DEFINE_GLOBALS
  148. = { 0.35355339059327,   0.70710678118655,  
  149.     0.35355339059327 }
  150. #endif
  151. ;
  152. EXTERN FILTER DefaultSynthesisFilterDbl
  153. #ifdef DEFINE_GLOBALS
  154. ={
  155.   DWT_ODD_SYMMETRIC,
  156.   DWT_DBL_TYPE,
  157.   9,
  158.   3,
  159.   DefaultSynthesisHPDbl,
  160.   DefaultSynthesisLPDbl,
  161.   1
  162. }
  163. #endif
  164. ;
  165. /* Default Even Symmetric Analysis filters */
  166. EXTERN Short DefaultEvenAnalysisLPInt[]
  167. #ifdef DEFINE_GLOBALS
  168. = {-5, 15, 19, -97, -26, 350, 350, -26, 
  169.    -97, 19, 15, -5}
  170. #endif
  171. ;
  172. EXTERN Short DefaultEvenAnalysisHPInt[]
  173. #ifdef DEFINE_GLOBALS
  174. = {64, -192, 192, -64}
  175. #endif
  176. ;
  177. EXTERN FILTER DefaultEvenAnalysisFilterInt
  178. #ifdef DEFINE_GLOBALS
  179. ={
  180.   DWT_EVEN_SYMMETRIC,
  181.   DWT_INT_TYPE,
  182.   4,
  183.   12,
  184.   DefaultEvenAnalysisHPInt,
  185.   DefaultEvenAnalysisLPInt,
  186.   512
  187. }
  188. #endif
  189. ;
  190. EXTERN Double DefaultEvenAnalysisLPDbl[]
  191. #ifdef DEFINE_GLOBALS
  192. = { -0.01381067932005,   0.04143203796015,   
  193.     0.05248058141619,  -0.26792717880897,   
  194.     -0.07181553246426,   0.96674755240348,  
  195.     0.96674755240348,  -0.07181553246426,  
  196.     -0.26792717880897,   0.05248058141619, 
  197.     0.04143203796015,  -0.01381067932005}
  198. #endif
  199. ;
  200. EXTERN Double DefaultEvenAnalysisHPDbl[]
  201. #ifdef DEFINE_GLOBALS
  202. = { 0.17677669529664,  -0.53033008588991,   
  203.     0.53033008588991,  -0.17677669529664}
  204. #endif
  205. ;
  206. EXTERN FILTER DefaultEvenAnalysisFilterDbl
  207. #ifdef DEFINE_GLOBALS
  208. ={
  209.   DWT_EVEN_SYMMETRIC,
  210.   DWT_DBL_TYPE,
  211.   4,
  212.   12,
  213.   DefaultEvenAnalysisHPDbl,
  214.   DefaultEvenAnalysisLPDbl,
  215.   1
  216. }
  217. #endif
  218. ;
  219. /* Default Even Symmetric Synthesis filters */
  220. EXTERN Short DefaultEvenSynthesisHPInt[]
  221. #ifdef DEFINE_GLOBALS
  222. = {5, 15, -19, -97, 26, 350, -350, -26, 
  223.    97, 19, -15, -5}
  224. #endif
  225. ;
  226. EXTERN Short DefaultEvenSynthesisLPInt[]
  227. #ifdef DEFINE_GLOBALS
  228. = {64, 192, 192, 64}
  229. #endif
  230. ;
  231. EXTERN FILTER DefaultEvenSynthesisFilterInt
  232. #ifdef DEFINE_GLOBALS
  233. ={
  234.   DWT_EVEN_SYMMETRIC,
  235.   DWT_INT_TYPE,
  236.   12,
  237.   4,
  238.   DefaultEvenSynthesisHPInt,
  239.   DefaultEvenSynthesisLPInt,
  240.   512
  241. }
  242. #endif
  243. ;
  244. EXTERN Double DefaultEvenSynthesisHPDbl[]
  245. #ifdef DEFINE_GLOBALS
  246. ={ 0.01381067932005,   0.04143203796015,
  247.    -0.05248058141619,  -0.26792717880897,  
  248.    0.07181553246426,   0.96674755240348,  
  249.    -0.96674755240348,  -0.07181553246426,    
  250.    0.26792717880897,   0.05248058141619,  
  251.    -0.04143203796015,  -0.01381067932005}
  252. #endif
  253. ;
  254. EXTERN Double DefaultEvenSynthesisLPDbl[]
  255. #ifdef DEFINE_GLOBALS
  256. = { 0.17677669529664,   0.53033008588991,  
  257.     0.53033008588991,   0.17677669529664}
  258. #endif
  259. ;
  260. EXTERN FILTER DefaultEvenSynthesisFilterDbl
  261. #ifdef DEFINE_GLOBALS
  262. ={
  263.   DWT_EVEN_SYMMETRIC,
  264.   DWT_DBL_TYPE,
  265.   12,
  266.   4,
  267.   DefaultEvenSynthesisHPDbl,
  268.   DefaultEvenSynthesisLPDbl,
  269.   1
  270. }
  271. #endif
  272. ;
  273. /* -------  the following are symmetric filters available from SOL -------- */
  274. /********/
  275. /* Haar */
  276. /********/
  277. EXTERN Double haar_lo[]
  278. #ifdef DEFINE_GLOBALS
  279.  = { .707107, .707107 }
  280. #endif
  281. ;
  282. EXTERN Double haar_hi[]
  283. #ifdef DEFINE_GLOBALS
  284.  = { -.707107, .707107 }
  285. #endif
  286. ;
  287. EXTERN Double haar_hi_syn[]
  288. #ifdef DEFINE_GLOBALS
  289.  = { .707107, -.707107 }
  290. #endif
  291. ;
  292. EXTERN FILTER HaarAna
  293. #ifdef DEFINE_GLOBALS
  294. ={
  295.   DWT_EVEN_SYMMETRIC,
  296.   DWT_DBL_TYPE,
  297.   2,
  298.   2,
  299.   haar_hi,
  300.   haar_lo,
  301.   1
  302. }
  303. #endif
  304. ;
  305. EXTERN FILTER HaarSyn
  306. #ifdef DEFINE_GLOBALS
  307. ={
  308.   DWT_EVEN_SYMMETRIC,
  309.   DWT_DBL_TYPE,
  310.   2,
  311.   2,
  312.   haar_hi_syn,
  313.   haar_lo,
  314.   1
  315. }
  316. #endif
  317. ;
  318.   
  319. /****************************/
  320. /* QMF9, Floating precision */
  321. /****************************/
  322. EXTERN Double qmf9_lo[]
  323. #ifdef DEFINE_GLOBALS
  324.  = { 0.028213, -0.060386, -0.073878, 0.41394, 0.798422,
  325.      0.41394, -0.073878, -0.060386, 0.028213}
  326. #endif
  327. ;
  328. EXTERN Double qmf9_hi[]
  329. #ifdef DEFINE_GLOBALS
  330. = { 0.028213, 0.060386, -0.073878, -0.41394, 0.798422,
  331.     -0.41394, -0.073878, 0.060386, 0.028213}
  332. #endif
  333. ;
  334. EXTERN FILTER qmf9Ana
  335. #ifdef DEFINE_GLOBALS
  336. ={
  337.   DWT_ODD_SYMMETRIC,
  338.   DWT_DBL_TYPE,
  339.   9,
  340.   9,
  341.   qmf9_hi,
  342.   qmf9_lo,
  343.   1
  344. }
  345. #endif
  346. ;
  347. EXTERN FILTER  qmf9Syn
  348. #ifdef DEFINE_GLOBALS
  349. ={
  350.   DWT_ODD_SYMMETRIC,
  351.   DWT_DBL_TYPE,
  352.   9,
  353.   9,
  354.   qmf9_hi,
  355.   qmf9_lo,
  356.   1
  357. }
  358. #endif
  359. ;
  360. /**************************/
  361. /* QMF9, Double precision */
  362. /**************************/
  363. EXTERN Double qmf9a_lo[]
  364. #ifdef DEFINE_GLOBALS
  365.  = { 0.02821356056934, -0.06040106124895, 
  366.      -0.07387851649837, 0.41395445184223,  
  367.      0.79843669304460,  0.41395445184223, 
  368.      -0.07387851649837, -0.06040106124895,
  369.      0.02821356056934}
  370. #endif
  371. ;
  372. EXTERN Double qmf9a_hi[]
  373. #ifdef DEFINE_GLOBALS
  374.  = { 0.02821356056934,  0.06040106124895, 
  375.      -0.07387851649837, -0.41395445184223,  
  376.      0.79843669304460,  -0.41395445184223, 
  377.      -0.07387851649837, 0.06040106124895,  
  378.      0.02821356056934}
  379. #endif
  380. ;
  381. EXTERN FILTER qmf9aAna
  382. #ifdef DEFINE_GLOBALS
  383. ={
  384.   DWT_ODD_SYMMETRIC,
  385.   DWT_DBL_TYPE,
  386.   9,
  387.   9,
  388.   qmf9a_hi,
  389.   qmf9a_lo,
  390.   1
  391. }
  392. #endif
  393. ;
  394. EXTERN FILTER  qmf9aSyn
  395. #ifdef DEFINE_GLOBALS
  396. ={
  397.   DWT_ODD_SYMMETRIC,
  398.   DWT_DBL_TYPE,
  399.   9,
  400.   9,
  401.   qmf9a_hi,
  402.   qmf9a_lo,
  403.   1
  404. }
  405. #endif
  406. ;
  407. /*********/
  408. /* fpr53 */
  409. /*********/
  410. EXTERN Double fpr53_lo_ana[]
  411. #ifdef DEFINE_GLOBALS
  412.  = {-0.1767766953,0.3535533906,1.060660172,
  413.     0.3535533906,-0.1767766953}
  414. #endif
  415. ;
  416. EXTERN Double fpr53_hi_ana[]
  417. #ifdef DEFINE_GLOBALS
  418.  = { -0.3535533906,0.7071067812,-0.3535533906 }
  419. #endif
  420. ;
  421. EXTERN Double fpr53_lo_syn[]
  422. #ifdef DEFINE_GLOBALS
  423.  = { 0.3535533906,0.7071067812,0.3535533906 }
  424. #endif
  425. ;
  426. EXTERN Double fpr53_hi_syn[]
  427. #ifdef DEFINE_GLOBALS
  428.  = {-0.1767766953,-0.3535533906,1.060660172,
  429.     -0.3535533906,-0.1767766953}
  430. #endif
  431. ;
  432. EXTERN FILTER fpr53Ana 
  433. #ifdef DEFINE_GLOBALS
  434. ={
  435.   DWT_ODD_SYMMETRIC,
  436.   DWT_DBL_TYPE,
  437.   3,
  438.   5,
  439.   fpr53_hi_ana,
  440.   fpr53_lo_ana,
  441.   1
  442. }
  443. #endif
  444. ;
  445. EXTERN FILTER fpr53Syn 
  446. #ifdef DEFINE_GLOBALS
  447. ={
  448.   DWT_ODD_SYMMETRIC,
  449.   DWT_DBL_TYPE,
  450.   5,
  451.   3,
  452.   fpr53_hi_syn,
  453.   fpr53_lo_syn,
  454.   1
  455. }
  456. #endif
  457. ;
  458. /**********/
  459. /* fpr53a */
  460. /**********/
  461. EXTERN Double fpr53a_lo_ana[]
  462. #ifdef DEFINE_GLOBALS
  463.  = {-0.15713836263467, 0.31427672526933, 
  464.     0.94283017598577, 0.31427672526933, 
  465.     -0.15713836263467}
  466. #endif
  467. ;
  468. EXTERN Double fpr53a_hi_ana[]
  469. #ifdef DEFINE_GLOBALS
  470.  = {-0.35355339059327, 0.70710678118655, 
  471.     -0.35355339059327}
  472. #endif
  473. ;
  474. EXTERN Double fpr53a_lo_syn[]
  475. #ifdef DEFINE_GLOBALS
  476.  ={ 0.39773864863086, 0.79547729726172, 
  477.     0.39773864863086}
  478. #endif
  479. ;
  480. EXTERN Double fpr53a_hi_syn[]
  481. #ifdef DEFINE_GLOBALS
  482.  = {-0.17677669530336, -0.35355339060673,  
  483.     1.06066017202018, -0.35355339060673, 
  484.     -0.17677669530336}
  485. #endif
  486. ;
  487. EXTERN FILTER fpr53aAna 
  488. #ifdef DEFINE_GLOBALS
  489. ={
  490.   DWT_ODD_SYMMETRIC,
  491.   DWT_DBL_TYPE,
  492.   3,
  493.   5,
  494.   fpr53a_hi_ana,
  495.   fpr53a_lo_ana,
  496.   1
  497. }
  498. #endif
  499. ;
  500. EXTERN FILTER fpr53aSyn
  501. #ifdef DEFINE_GLOBALS
  502.  ={
  503.   DWT_ODD_SYMMETRIC,
  504.   DWT_DBL_TYPE,
  505.   5,
  506.   3,
  507.   fpr53a_hi_syn,
  508.   fpr53a_lo_syn,
  509.   1
  510. }
  511. #endif
  512. ;
  513. /*********/
  514. /* ASF93 */
  515. /*********/
  516. EXTERN Double asf93_lo_ana[]
  517. #ifdef DEFINE_GLOBALS
  518. = { 0.02828252799447, -0.05656505598894, 
  519.     -0.15084014930386, 0.35824535459664, 
  520.     0.84847583983416, 0.35824535459664, 
  521.     -0.15084014930386, -0.05656505598894, 
  522.     0.02828252799447}
  523. #endif
  524. ;
  525. EXTERN Double asf93_hi_ana[]
  526. #ifdef DEFINE_GLOBALS
  527. = {-0.41434591710792, 0.82869183421585, 
  528.    -0.41434591710792}
  529. #endif
  530. ;
  531. EXTERN Double asf93_lo_syn[]
  532. #ifdef DEFINE_GLOBALS
  533. = { 0.41434591710792, 0.82869183421585, 
  534.     0.41434591710792}
  535. #endif
  536. ;
  537. EXTERN Double asf93_hi_syn[]
  538. #ifdef DEFINE_GLOBALS
  539. = { 0.02828252799447, 0.05656505598894, 
  540.     -0.15084014930386, -0.35824535459664, 
  541.     0.84847583983416, -0.35824535459664, 
  542.     -0.15084014930386, 0.05656505598894, 
  543.     0.02828252799447}
  544. #endif
  545. ;
  546. EXTERN FILTER asd93Ana 
  547. #ifdef DEFINE_GLOBALS
  548. ={
  549.   DWT_ODD_SYMMETRIC,
  550.   DWT_DBL_TYPE,
  551.   3,
  552.   9,
  553.   asf93_hi_ana,
  554.   asf93_lo_ana,
  555.   1
  556. }
  557. #endif
  558. ;
  559. EXTERN FILTER asd93Syn
  560. #ifdef DEFINE_GLOBALS
  561.  ={
  562.   DWT_ODD_SYMMETRIC,
  563.   DWT_DBL_TYPE,
  564.   9,
  565.   3,
  566.   asf93_hi_syn,
  567.   asf93_lo_syn,
  568.   1
  569. }
  570. #endif
  571. ;
  572. /*********/
  573. /* WAV97 */
  574. /*********/
  575. EXTERN Double wav97_lo_ana[]
  576. #ifdef DEFINE_GLOBALS
  577. = { .037829, -.023849, -.110624, .377403, .852699, 
  578.     .377403, -.110624, -.023849, .037829}   
  579. #endif
  580. ;
  581. EXTERN Double wav97_hi_ana[]
  582. #ifdef DEFINE_GLOBALS
  583. = {.064539, -.040690, -.418092, .788485, 
  584.     -.418092, -.040690, .064539}  
  585. #endif
  586. ;
  587. EXTERN Double wav97_lo_syn[]
  588. #ifdef DEFINE_GLOBALS
  589. = {-.064539, -.040690, .418092, .788485, 
  590.     .418092, -.040690, -.064539}
  591. #endif
  592. ;
  593. EXTERN Double wav97_hi_syn[]
  594. #ifdef DEFINE_GLOBALS
  595. = { .037829, .023849, -.110624, -.377403, .852699,
  596.     -.377403, -.110624, .023849, .037829}
  597. #endif
  598. ;
  599. EXTERN FILTER wav97Ana 
  600. #ifdef DEFINE_GLOBALS
  601. ={
  602.   DWT_ODD_SYMMETRIC,
  603.   DWT_DBL_TYPE,
  604.   7,
  605.   9,
  606.   wav97_hi_ana,
  607.   wav97_lo_ana,
  608.   1
  609. }
  610. #endif
  611. ;
  612. EXTERN FILTER wav97Syn
  613. #ifdef DEFINE_GLOBALS
  614.  ={
  615.   DWT_ODD_SYMMETRIC,
  616.   DWT_DBL_TYPE,
  617.   9,
  618.   7,
  619.   wav97_hi_syn,
  620.   wav97_lo_syn,
  621.   1
  622. }
  623. #endif
  624. ;
  625. #endif /* _DEFAULT_H_ */