Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /********************************************************************
  2.  *                                                                  *
  3.  * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
  4.  * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
  5.  * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
  6.  * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
  7.  *                                                                  *
  8.  * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009             *
  9.  * by the Xiph.Org Foundation https://xiph.org/                     *
  10.  *                                                                  *
  11.  ********************************************************************
  12.  
  13.  function: toplevel residue templates for 32/44.1/48kHz
  14.  
  15.  ********************************************************************/
  16.  
  17. #include "vorbis/codec.h"
  18. #include "backends.h"
  19. #include "books/coupled/res_books_stereo.h"
  20.  
  21. /***** residue backends *********************************************/
  22.  
  23. static const vorbis_info_residue0 _residue_44_low={
  24.   0,-1, -1, 9,-1,-1,
  25.   /* 0   1   2   3   4   5   6   7  */
  26.   {0},
  27.   {-1},
  28.   {  0,  1,  2,  2,  4,  8, 16, 32},
  29.   {  0,  0,  0,999,  4,  8, 16, 32},
  30. };
  31.  
  32. static const vorbis_info_residue0 _residue_44_mid={
  33.   0,-1, -1, 10,-1,-1,
  34.   /* 0   1   2   3   4   5   6   7   8  */
  35.   {0},
  36.   {-1},
  37.   {  0,  1,  1,  2,  2,  4,  8, 16, 32},
  38.   {  0,  0,999,  0,999,  4,  8, 16, 32},
  39. };
  40.  
  41. static const vorbis_info_residue0 _residue_44_high={
  42.   0,-1, -1, 10,-1,-1,
  43.   /* 0   1   2   3   4   5   6   7   8  */
  44.   {0},
  45.   {-1},
  46.   {  0,  1,  2,  4,  8, 16, 32, 71,157},
  47.   {  0,  1,  2,  3,  4,  8, 16, 71,157},
  48. };
  49.  
  50. static const static_bookblock _resbook_44s_n1={
  51.   {
  52.     {0},{0,0,&_44cn1_s_p1_0},{0,0,&_44cn1_s_p2_0},
  53.     {0,0,&_44cn1_s_p3_0},{0,0,&_44cn1_s_p4_0},{0,0,&_44cn1_s_p5_0},
  54.     {&_44cn1_s_p6_0,&_44cn1_s_p6_1},{&_44cn1_s_p7_0,&_44cn1_s_p7_1},
  55.     {&_44cn1_s_p8_0,&_44cn1_s_p8_1,&_44cn1_s_p8_2}
  56.    }
  57. };
  58. static const static_bookblock _resbook_44sm_n1={
  59.   {
  60.     {0},{0,0,&_44cn1_sm_p1_0},{0,0,&_44cn1_sm_p2_0},
  61.     {0,0,&_44cn1_sm_p3_0},{0,0,&_44cn1_sm_p4_0},{0,0,&_44cn1_sm_p5_0},
  62.     {&_44cn1_sm_p6_0,&_44cn1_sm_p6_1},{&_44cn1_sm_p7_0,&_44cn1_sm_p7_1},
  63.     {&_44cn1_sm_p8_0,&_44cn1_sm_p8_1,&_44cn1_sm_p8_2}
  64.    }
  65. };
  66.  
  67. static const static_bookblock _resbook_44s_0={
  68.   {
  69.     {0},{0,0,&_44c0_s_p1_0},{0,0,&_44c0_s_p2_0},
  70.     {0,0,&_44c0_s_p3_0},{0,0,&_44c0_s_p4_0},{0,0,&_44c0_s_p5_0},
  71.     {&_44c0_s_p6_0,&_44c0_s_p6_1},{&_44c0_s_p7_0,&_44c0_s_p7_1},
  72.     {&_44c0_s_p8_0,&_44c0_s_p8_1,&_44c0_s_p8_2}
  73.    }
  74. };
  75. static const static_bookblock _resbook_44sm_0={
  76.   {
  77.     {0},{0,0,&_44c0_sm_p1_0},{0,0,&_44c0_sm_p2_0},
  78.     {0,0,&_44c0_sm_p3_0},{0,0,&_44c0_sm_p4_0},{0,0,&_44c0_sm_p5_0},
  79.     {&_44c0_sm_p6_0,&_44c0_sm_p6_1},{&_44c0_sm_p7_0,&_44c0_sm_p7_1},
  80.     {&_44c0_sm_p8_0,&_44c0_sm_p8_1,&_44c0_sm_p8_2}
  81.    }
  82. };
  83.  
  84. static const static_bookblock _resbook_44s_1={
  85.   {
  86.     {0},{0,0,&_44c1_s_p1_0},{0,0,&_44c1_s_p2_0},
  87.     {0,0,&_44c1_s_p3_0},{0,0,&_44c1_s_p4_0},{0,0,&_44c1_s_p5_0},
  88.     {&_44c1_s_p6_0,&_44c1_s_p6_1},{&_44c1_s_p7_0,&_44c1_s_p7_1},
  89.     {&_44c1_s_p8_0,&_44c1_s_p8_1,&_44c1_s_p8_2}
  90.    }
  91. };
  92. static const static_bookblock _resbook_44sm_1={
  93.   {
  94.     {0},{0,0,&_44c1_sm_p1_0},{0,0,&_44c1_sm_p2_0},
  95.     {0,0,&_44c1_sm_p3_0},{0,0,&_44c1_sm_p4_0},{0,0,&_44c1_sm_p5_0},
  96.     {&_44c1_sm_p6_0,&_44c1_sm_p6_1},{&_44c1_sm_p7_0,&_44c1_sm_p7_1},
  97.     {&_44c1_sm_p8_0,&_44c1_sm_p8_1,&_44c1_sm_p8_2}
  98.    }
  99. };
  100.  
  101. static const static_bookblock _resbook_44s_2={
  102.   {
  103.     {0},{0,0,&_44c2_s_p1_0},{0,0,&_44c2_s_p2_0},{0,0,&_44c2_s_p3_0},
  104.     {0,0,&_44c2_s_p4_0},{0,0,&_44c2_s_p5_0},{0,0,&_44c2_s_p6_0},
  105.     {&_44c2_s_p7_0,&_44c2_s_p7_1},{&_44c2_s_p8_0,&_44c2_s_p8_1},
  106.     {&_44c2_s_p9_0,&_44c2_s_p9_1,&_44c2_s_p9_2}
  107.    }
  108. };
  109. static const static_bookblock _resbook_44s_3={
  110.   {
  111.     {0},{0,0,&_44c3_s_p1_0},{0,0,&_44c3_s_p2_0},{0,0,&_44c3_s_p3_0},
  112.     {0,0,&_44c3_s_p4_0},{0,0,&_44c3_s_p5_0},{0,0,&_44c3_s_p6_0},
  113.     {&_44c3_s_p7_0,&_44c3_s_p7_1},{&_44c3_s_p8_0,&_44c3_s_p8_1},
  114.     {&_44c3_s_p9_0,&_44c3_s_p9_1,&_44c3_s_p9_2}
  115.    }
  116. };
  117. static const static_bookblock _resbook_44s_4={
  118.   {
  119.     {0},{0,0,&_44c4_s_p1_0},{0,0,&_44c4_s_p2_0},{0,0,&_44c4_s_p3_0},
  120.     {0,0,&_44c4_s_p4_0},{0,0,&_44c4_s_p5_0},{0,0,&_44c4_s_p6_0},
  121.     {&_44c4_s_p7_0,&_44c4_s_p7_1},{&_44c4_s_p8_0,&_44c4_s_p8_1},
  122.     {&_44c4_s_p9_0,&_44c4_s_p9_1,&_44c4_s_p9_2}
  123.    }
  124. };
  125. static const static_bookblock _resbook_44s_5={
  126.   {
  127.     {0},{0,0,&_44c5_s_p1_0},{0,0,&_44c5_s_p2_0},{0,0,&_44c5_s_p3_0},
  128.     {0,0,&_44c5_s_p4_0},{0,0,&_44c5_s_p5_0},{0,0,&_44c5_s_p6_0},
  129.     {&_44c5_s_p7_0,&_44c5_s_p7_1},{&_44c5_s_p8_0,&_44c5_s_p8_1},
  130.     {&_44c5_s_p9_0,&_44c5_s_p9_1,&_44c5_s_p9_2}
  131.    }
  132. };
  133. static const static_bookblock _resbook_44s_6={
  134.   {
  135.     {0},{0,0,&_44c6_s_p1_0},{0,0,&_44c6_s_p2_0},{0,0,&_44c6_s_p3_0},
  136.     {0,0,&_44c6_s_p4_0},
  137.     {&_44c6_s_p5_0,&_44c6_s_p5_1},
  138.     {&_44c6_s_p6_0,&_44c6_s_p6_1},
  139.     {&_44c6_s_p7_0,&_44c6_s_p7_1},
  140.     {&_44c6_s_p8_0,&_44c6_s_p8_1},
  141.     {&_44c6_s_p9_0,&_44c6_s_p9_1,&_44c6_s_p9_2}
  142.    }
  143. };
  144. static const static_bookblock _resbook_44s_7={
  145.   {
  146.     {0},{0,0,&_44c7_s_p1_0},{0,0,&_44c7_s_p2_0},{0,0,&_44c7_s_p3_0},
  147.     {0,0,&_44c7_s_p4_0},
  148.     {&_44c7_s_p5_0,&_44c7_s_p5_1},
  149.     {&_44c7_s_p6_0,&_44c7_s_p6_1},
  150.     {&_44c7_s_p7_0,&_44c7_s_p7_1},
  151.     {&_44c7_s_p8_0,&_44c7_s_p8_1},
  152.     {&_44c7_s_p9_0,&_44c7_s_p9_1,&_44c7_s_p9_2}
  153.    }
  154. };
  155. static const static_bookblock _resbook_44s_8={
  156.   {
  157.     {0},{0,0,&_44c8_s_p1_0},{0,0,&_44c8_s_p2_0},{0,0,&_44c8_s_p3_0},
  158.     {0,0,&_44c8_s_p4_0},
  159.     {&_44c8_s_p5_0,&_44c8_s_p5_1},
  160.     {&_44c8_s_p6_0,&_44c8_s_p6_1},
  161.     {&_44c8_s_p7_0,&_44c8_s_p7_1},
  162.     {&_44c8_s_p8_0,&_44c8_s_p8_1},
  163.     {&_44c8_s_p9_0,&_44c8_s_p9_1,&_44c8_s_p9_2}
  164.    }
  165. };
  166. static const static_bookblock _resbook_44s_9={
  167.   {
  168.     {0},{0,0,&_44c9_s_p1_0},{0,0,&_44c9_s_p2_0},{0,0,&_44c9_s_p3_0},
  169.     {0,0,&_44c9_s_p4_0},
  170.     {&_44c9_s_p5_0,&_44c9_s_p5_1},
  171.     {&_44c9_s_p6_0,&_44c9_s_p6_1},
  172.     {&_44c9_s_p7_0,&_44c9_s_p7_1},
  173.     {&_44c9_s_p8_0,&_44c9_s_p8_1},
  174.     {&_44c9_s_p9_0,&_44c9_s_p9_1,&_44c9_s_p9_2}
  175.    }
  176. };
  177.  
  178. static const vorbis_residue_template _res_44s_n1[]={
  179.   {2,0,32,  &_residue_44_low,
  180.    &_huff_book__44cn1_s_short,&_huff_book__44cn1_sm_short,
  181.    &_resbook_44s_n1,&_resbook_44sm_n1},
  182.  
  183.   {2,0,32,  &_residue_44_low,
  184.    &_huff_book__44cn1_s_long,&_huff_book__44cn1_sm_long,
  185.    &_resbook_44s_n1,&_resbook_44sm_n1}
  186. };
  187. static const vorbis_residue_template _res_44s_0[]={
  188.   {2,0,16,  &_residue_44_low,
  189.    &_huff_book__44c0_s_short,&_huff_book__44c0_sm_short,
  190.    &_resbook_44s_0,&_resbook_44sm_0},
  191.  
  192.   {2,0,32,  &_residue_44_low,
  193.    &_huff_book__44c0_s_long,&_huff_book__44c0_sm_long,
  194.    &_resbook_44s_0,&_resbook_44sm_0}
  195. };
  196. static const vorbis_residue_template _res_44s_1[]={
  197.   {2,0,16,  &_residue_44_low,
  198.    &_huff_book__44c1_s_short,&_huff_book__44c1_sm_short,
  199.    &_resbook_44s_1,&_resbook_44sm_1},
  200.  
  201.   {2,0,32,  &_residue_44_low,
  202.    &_huff_book__44c1_s_long,&_huff_book__44c1_sm_long,
  203.    &_resbook_44s_1,&_resbook_44sm_1}
  204. };
  205.  
  206. static const vorbis_residue_template _res_44s_2[]={
  207.   {2,0,16,  &_residue_44_mid,
  208.    &_huff_book__44c2_s_short,&_huff_book__44c2_s_short,
  209.    &_resbook_44s_2,&_resbook_44s_2},
  210.  
  211.   {2,0,32,  &_residue_44_mid,
  212.    &_huff_book__44c2_s_long,&_huff_book__44c2_s_long,
  213.    &_resbook_44s_2,&_resbook_44s_2}
  214. };
  215. static const vorbis_residue_template _res_44s_3[]={
  216.   {2,0,16,  &_residue_44_mid,
  217.    &_huff_book__44c3_s_short,&_huff_book__44c3_s_short,
  218.    &_resbook_44s_3,&_resbook_44s_3},
  219.  
  220.   {2,0,32,  &_residue_44_mid,
  221.    &_huff_book__44c3_s_long,&_huff_book__44c3_s_long,
  222.    &_resbook_44s_3,&_resbook_44s_3}
  223. };
  224. static const vorbis_residue_template _res_44s_4[]={
  225.   {2,0,16,  &_residue_44_mid,
  226.    &_huff_book__44c4_s_short,&_huff_book__44c4_s_short,
  227.    &_resbook_44s_4,&_resbook_44s_4},
  228.  
  229.   {2,0,32,  &_residue_44_mid,
  230.    &_huff_book__44c4_s_long,&_huff_book__44c4_s_long,
  231.    &_resbook_44s_4,&_resbook_44s_4}
  232. };
  233. static const vorbis_residue_template _res_44s_5[]={
  234.   {2,0,16,  &_residue_44_mid,
  235.    &_huff_book__44c5_s_short,&_huff_book__44c5_s_short,
  236.    &_resbook_44s_5,&_resbook_44s_5},
  237.  
  238.   {2,0,32,  &_residue_44_mid,
  239.    &_huff_book__44c5_s_long,&_huff_book__44c5_s_long,
  240.    &_resbook_44s_5,&_resbook_44s_5}
  241. };
  242. static const vorbis_residue_template _res_44s_6[]={
  243.   {2,0,16,  &_residue_44_high,
  244.    &_huff_book__44c6_s_short,&_huff_book__44c6_s_short,
  245.    &_resbook_44s_6,&_resbook_44s_6},
  246.  
  247.   {2,0,32,  &_residue_44_high,
  248.    &_huff_book__44c6_s_long,&_huff_book__44c6_s_long,
  249.    &_resbook_44s_6,&_resbook_44s_6}
  250. };
  251. static const vorbis_residue_template _res_44s_7[]={
  252.   {2,0,16,  &_residue_44_high,
  253.    &_huff_book__44c7_s_short,&_huff_book__44c7_s_short,
  254.    &_resbook_44s_7,&_resbook_44s_7},
  255.  
  256.   {2,0,32,  &_residue_44_high,
  257.    &_huff_book__44c7_s_long,&_huff_book__44c7_s_long,
  258.    &_resbook_44s_7,&_resbook_44s_7}
  259. };
  260. static const vorbis_residue_template _res_44s_8[]={
  261.   {2,0,16,  &_residue_44_high,
  262.    &_huff_book__44c8_s_short,&_huff_book__44c8_s_short,
  263.    &_resbook_44s_8,&_resbook_44s_8},
  264.  
  265.   {2,0,32,  &_residue_44_high,
  266.    &_huff_book__44c8_s_long,&_huff_book__44c8_s_long,
  267.    &_resbook_44s_8,&_resbook_44s_8}
  268. };
  269. static const vorbis_residue_template _res_44s_9[]={
  270.   {2,0,16,  &_residue_44_high,
  271.    &_huff_book__44c9_s_short,&_huff_book__44c9_s_short,
  272.    &_resbook_44s_9,&_resbook_44s_9},
  273.  
  274.   {2,0,32,  &_residue_44_high,
  275.    &_huff_book__44c9_s_long,&_huff_book__44c9_s_long,
  276.    &_resbook_44s_9,&_resbook_44s_9}
  277. };
  278.  
  279. static const vorbis_mapping_template _mapres_template_44_stereo[]={
  280.   { _map_nominal, _res_44s_n1 }, /* -1 */
  281.   { _map_nominal, _res_44s_0 }, /* 0 */
  282.   { _map_nominal, _res_44s_1 }, /* 1 */
  283.   { _map_nominal, _res_44s_2 }, /* 2 */
  284.   { _map_nominal, _res_44s_3 }, /* 3 */
  285.   { _map_nominal, _res_44s_4 }, /* 4 */
  286.   { _map_nominal, _res_44s_5 }, /* 5 */
  287.   { _map_nominal, _res_44s_6 }, /* 6 */
  288.   { _map_nominal, _res_44s_7 }, /* 7 */
  289.   { _map_nominal, _res_44s_8 }, /* 8 */
  290.   { _map_nominal, _res_44s_9 }, /* 9 */
  291. };
  292.