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: key floor settings
  14.  
  15.  ********************************************************************/
  16.  
  17. #include "vorbis/codec.h"
  18. #include "backends.h"
  19. #include "books/floor/floor_books.h"
  20.  
  21. static const static_codebook*const _floor_128x4_books[]={
  22.   &_huff_book_line_128x4_class0,
  23.   &_huff_book_line_128x4_0sub0,
  24.   &_huff_book_line_128x4_0sub1,
  25.   &_huff_book_line_128x4_0sub2,
  26.   &_huff_book_line_128x4_0sub3,
  27. };
  28. static const static_codebook*const _floor_256x4_books[]={
  29.   &_huff_book_line_256x4_class0,
  30.   &_huff_book_line_256x4_0sub0,
  31.   &_huff_book_line_256x4_0sub1,
  32.   &_huff_book_line_256x4_0sub2,
  33.   &_huff_book_line_256x4_0sub3,
  34. };
  35. static const static_codebook*const _floor_128x7_books[]={
  36.   &_huff_book_line_128x7_class0,
  37.   &_huff_book_line_128x7_class1,
  38.  
  39.   &_huff_book_line_128x7_0sub1,
  40.   &_huff_book_line_128x7_0sub2,
  41.   &_huff_book_line_128x7_0sub3,
  42.   &_huff_book_line_128x7_1sub1,
  43.   &_huff_book_line_128x7_1sub2,
  44.   &_huff_book_line_128x7_1sub3,
  45. };
  46. static const static_codebook*const _floor_256x7_books[]={
  47.   &_huff_book_line_256x7_class0,
  48.   &_huff_book_line_256x7_class1,
  49.  
  50.   &_huff_book_line_256x7_0sub1,
  51.   &_huff_book_line_256x7_0sub2,
  52.   &_huff_book_line_256x7_0sub3,
  53.   &_huff_book_line_256x7_1sub1,
  54.   &_huff_book_line_256x7_1sub2,
  55.   &_huff_book_line_256x7_1sub3,
  56. };
  57. static const static_codebook*const _floor_128x11_books[]={
  58.   &_huff_book_line_128x11_class1,
  59.   &_huff_book_line_128x11_class2,
  60.   &_huff_book_line_128x11_class3,
  61.  
  62.   &_huff_book_line_128x11_0sub0,
  63.   &_huff_book_line_128x11_1sub0,
  64.   &_huff_book_line_128x11_1sub1,
  65.   &_huff_book_line_128x11_2sub1,
  66.   &_huff_book_line_128x11_2sub2,
  67.   &_huff_book_line_128x11_2sub3,
  68.   &_huff_book_line_128x11_3sub1,
  69.   &_huff_book_line_128x11_3sub2,
  70.   &_huff_book_line_128x11_3sub3,
  71. };
  72. static const static_codebook*const _floor_128x17_books[]={
  73.   &_huff_book_line_128x17_class1,
  74.   &_huff_book_line_128x17_class2,
  75.   &_huff_book_line_128x17_class3,
  76.  
  77.   &_huff_book_line_128x17_0sub0,
  78.   &_huff_book_line_128x17_1sub0,
  79.   &_huff_book_line_128x17_1sub1,
  80.   &_huff_book_line_128x17_2sub1,
  81.   &_huff_book_line_128x17_2sub2,
  82.   &_huff_book_line_128x17_2sub3,
  83.   &_huff_book_line_128x17_3sub1,
  84.   &_huff_book_line_128x17_3sub2,
  85.   &_huff_book_line_128x17_3sub3,
  86. };
  87. static const static_codebook*const _floor_256x4low_books[]={
  88.   &_huff_book_line_256x4low_class0,
  89.   &_huff_book_line_256x4low_0sub0,
  90.   &_huff_book_line_256x4low_0sub1,
  91.   &_huff_book_line_256x4low_0sub2,
  92.   &_huff_book_line_256x4low_0sub3,
  93. };
  94. static const static_codebook*const _floor_1024x27_books[]={
  95.   &_huff_book_line_1024x27_class1,
  96.   &_huff_book_line_1024x27_class2,
  97.   &_huff_book_line_1024x27_class3,
  98.   &_huff_book_line_1024x27_class4,
  99.  
  100.   &_huff_book_line_1024x27_0sub0,
  101.   &_huff_book_line_1024x27_1sub0,
  102.   &_huff_book_line_1024x27_1sub1,
  103.   &_huff_book_line_1024x27_2sub0,
  104.   &_huff_book_line_1024x27_2sub1,
  105.   &_huff_book_line_1024x27_3sub1,
  106.   &_huff_book_line_1024x27_3sub2,
  107.   &_huff_book_line_1024x27_3sub3,
  108.   &_huff_book_line_1024x27_4sub1,
  109.   &_huff_book_line_1024x27_4sub2,
  110.   &_huff_book_line_1024x27_4sub3,
  111. };
  112. static const static_codebook*const _floor_2048x27_books[]={
  113.   &_huff_book_line_2048x27_class1,
  114.   &_huff_book_line_2048x27_class2,
  115.   &_huff_book_line_2048x27_class3,
  116.   &_huff_book_line_2048x27_class4,
  117.  
  118.   &_huff_book_line_2048x27_0sub0,
  119.   &_huff_book_line_2048x27_1sub0,
  120.   &_huff_book_line_2048x27_1sub1,
  121.   &_huff_book_line_2048x27_2sub0,
  122.   &_huff_book_line_2048x27_2sub1,
  123.   &_huff_book_line_2048x27_3sub1,
  124.   &_huff_book_line_2048x27_3sub2,
  125.   &_huff_book_line_2048x27_3sub3,
  126.   &_huff_book_line_2048x27_4sub1,
  127.   &_huff_book_line_2048x27_4sub2,
  128.   &_huff_book_line_2048x27_4sub3,
  129. };
  130.  
  131. static const static_codebook*const _floor_512x17_books[]={
  132.   &_huff_book_line_512x17_class1,
  133.   &_huff_book_line_512x17_class2,
  134.   &_huff_book_line_512x17_class3,
  135.  
  136.   &_huff_book_line_512x17_0sub0,
  137.   &_huff_book_line_512x17_1sub0,
  138.   &_huff_book_line_512x17_1sub1,
  139.   &_huff_book_line_512x17_2sub1,
  140.   &_huff_book_line_512x17_2sub2,
  141.   &_huff_book_line_512x17_2sub3,
  142.   &_huff_book_line_512x17_3sub1,
  143.   &_huff_book_line_512x17_3sub2,
  144.   &_huff_book_line_512x17_3sub3,
  145. };
  146.  
  147. static const static_codebook*const _floor_Xx0_books[]={
  148.   0
  149. };
  150.  
  151. static const static_codebook*const *const _floor_books[11]={
  152.   _floor_128x4_books,
  153.   _floor_256x4_books,
  154.   _floor_128x7_books,
  155.   _floor_256x7_books,
  156.   _floor_128x11_books,
  157.   _floor_128x17_books,
  158.   _floor_256x4low_books,
  159.   _floor_1024x27_books,
  160.   _floor_2048x27_books,
  161.   _floor_512x17_books,
  162.   _floor_Xx0_books,
  163. };
  164.  
  165. static const vorbis_info_floor1 _floor[11]={
  166.   /* 0: 128 x 4 */
  167.   {
  168.     1,{0},{4},{2},{0},
  169.     {{1,2,3,4}},
  170.     4,{0,128, 33,8,16,70},
  171.  
  172.     60,30,500,   1.,18.,  128
  173.   },
  174.   /* 1: 256 x 4 */
  175.   {
  176.     1,{0},{4},{2},{0},
  177.     {{1,2,3,4}},
  178.     4,{0,256, 66,16,32,140},
  179.  
  180.     60,30,500,   1.,18.,  256
  181.   },
  182.   /* 2: 128 x 7 */
  183.   {
  184.     2,{0,1},{3,4},{2,2},{0,1},
  185.     {{-1,2,3,4},{-1,5,6,7}},
  186.     4,{0,128, 14,4,58, 2,8,28,90},
  187.  
  188.     60,30,500,   1.,18.,  128
  189.   },
  190.   /* 3: 256 x 7 */
  191.   {
  192.     2,{0,1},{3,4},{2,2},{0,1},
  193.     {{-1,2,3,4},{-1,5,6,7}},
  194.     4,{0,256, 28,8,116, 4,16,56,180},
  195.  
  196.     60,30,500,   1.,18.,  256
  197.   },
  198.   /* 4: 128 x 11 */
  199.   {
  200.     4,{0,1,2,3},{2,3,3,3},{0,1,2,2},{-1,0,1,2},
  201.     {{3},{4,5},{-1,6,7,8},{-1,9,10,11}},
  202.  
  203.     2,{0,128,  8,33,  4,16,70,  2,6,12,  23,46,90},
  204.  
  205.      60,30,500,   1,18.,  128
  206.   },
  207.   /* 5: 128 x 17 */
  208.   {
  209.     6,{0,1,1,2,3,3},{2,3,3,3},{0,1,2,2},{-1,0,1,2},
  210.     {{3},{4,5},{-1,6,7,8},{-1,9,10,11}},
  211.     2,{0,128,  12,46,  4,8,16,  23,33,70,  2,6,10,  14,19,28,  39,58,90},
  212.  
  213.     60,30,500,    1,18.,  128
  214.   },
  215.   /* 6: 256 x 4 (low bitrate version) */
  216.   {
  217.     1,{0},{4},{2},{0},
  218.     {{1,2,3,4}},
  219.     4,{0,256, 66,16,32,140},
  220.  
  221.     60,30,500,   1.,18.,  256
  222.   },
  223.   /* 7: 1024 x 27 */
  224.   {
  225.     8,{0,1,2,2,3,3,4,4},{3,4,3,4,3},{0,1,1,2,2},{-1,0,1,2,3},
  226.     {{4},{5,6},{7,8},{-1,9,10,11},{-1,12,13,14}},
  227.     2,{0,1024,   93,23,372, 6,46,186,750,  14,33,65, 130,260,556,
  228.        3,10,18,28,  39,55,79,111,  158,220,312,  464,650,850},
  229.  
  230.     60,30,500,    3,18.,  1024
  231.   },
  232.   /* 8: 2048 x 27 */
  233.   {
  234.     8,{0,1,2,2,3,3,4,4},{3,4,3,4,3},{0,1,1,2,2},{-1,0,1,2,3},
  235.     {{4},{5,6},{7,8},{-1,9,10,11},{-1,12,13,14}},
  236.     2,{0,2048,   186,46,744, 12,92,372,1500,  28,66,130, 260,520,1112,
  237.        6,20,36,56,  78,110,158,222,  316,440,624,  928,1300,1700},
  238.  
  239.     60,30,500,    3,18.,  2048
  240.   },
  241.   /* 9: 512 x 17 */
  242.   {
  243.     6,{0,1,1,2,3,3},{2,3,3,3},{0,1,2,2},{-1,0,1,2},
  244.     {{3},{4,5},{-1,6,7,8},{-1,9,10,11}},
  245.     2,{0,512,  46,186,  16,33,65,  93,130,278,
  246.        7,23,39,  55,79,110,  156,232,360},
  247.  
  248.     60,30,500,    1,18.,  512
  249.   },
  250.  
  251.   /* 10: X x 0 (LFE floor; edge posts only) */
  252.   {
  253.     0,{0}, {0},{0},{-1},
  254.     {{-1}},
  255.     2,{0,12},
  256.     60,30,500,   1.,18.,  10
  257.   },
  258.  
  259. };
  260.