cannam@86: /******************************************************************** cannam@86: * * cannam@86: * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * cannam@86: * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * cannam@86: * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * cannam@86: * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * cannam@86: * * cannam@86: * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2010 * cannam@86: * by the Xiph.Org Foundation http://www.xiph.org/ * cannam@86: * * cannam@86: ******************************************************************** cannam@86: cannam@86: function: toplevel residue templates for 32/44.1/48kHz uncoupled cannam@86: last mod: $Id$ cannam@86: cannam@86: ********************************************************************/ cannam@86: cannam@86: #include "vorbis/codec.h" cannam@86: #include "backends.h" cannam@86: cannam@86: #include "books/coupled/res_books_51.h" cannam@86: cannam@86: /***** residue backends *********************************************/ cannam@86: cannam@86: static const vorbis_info_residue0 _residue_44p_lo={ cannam@86: 0,-1, -1, 7,-1,-1, cannam@86: /* 0 1 2 3 4 5 6 7 8 */ cannam@86: {0}, cannam@86: {-1}, cannam@86: { 0, 1, 2, 7, 17, 31}, cannam@86: { 0, 0, 99, 7, 17, 31}, cannam@86: }; cannam@86: cannam@86: static const vorbis_info_residue0 _residue_44p={ cannam@86: 0,-1, -1, 8,-1,-1, cannam@86: /* 0 1 2 3 4 5 6 7 8 */ cannam@86: {0}, cannam@86: {-1}, cannam@86: { 0, 1, 1, 2, 7, 17, 31}, cannam@86: { 0, 0, 99, 99, 7, 17, 31}, cannam@86: }; cannam@86: cannam@86: static const vorbis_info_residue0 _residue_44p_hi={ cannam@86: 0,-1, -1, 8,-1,-1, cannam@86: /* 0 1 2 3 4 5 6 7 8 */ cannam@86: {0}, cannam@86: {-1}, cannam@86: { 0, 1, 2, 4, 7, 17, 31}, cannam@86: { 0, 1, 2, 4, 7, 17, 31}, cannam@86: }; cannam@86: cannam@86: static const vorbis_info_residue0 _residue_44p_lfe={ cannam@86: 0,-1, -1, 2,-1,-1, cannam@86: /* 0 1 2 3 4 5 6 7 8 */ cannam@86: {0}, cannam@86: {-1}, cannam@86: { 32}, cannam@86: { -1} cannam@86: }; cannam@86: cannam@86: static const static_bookblock _resbook_44p_n1={ cannam@86: { cannam@86: {0}, cannam@86: {0,&_44pn1_p1_0}, cannam@86: cannam@86: {&_44pn1_p2_0,&_44pn1_p2_1,0}, cannam@86: {&_44pn1_p3_0,&_44pn1_p3_1,0}, cannam@86: {&_44pn1_p4_0,&_44pn1_p4_1,0}, cannam@86: cannam@86: {&_44pn1_p5_0,&_44pn1_p5_1,&_44pn1_p4_1}, cannam@86: {&_44pn1_p6_0,&_44pn1_p6_1,&_44pn1_p6_2}, cannam@86: } cannam@86: }; cannam@86: cannam@86: static const static_bookblock _resbook_44p_0={ cannam@86: { cannam@86: {0}, cannam@86: {0,&_44p0_p1_0}, cannam@86: cannam@86: {&_44p0_p2_0,&_44p0_p2_1,0}, cannam@86: {&_44p0_p3_0,&_44p0_p3_1,0}, cannam@86: {&_44p0_p4_0,&_44p0_p4_1,0}, cannam@86: cannam@86: {&_44p0_p5_0,&_44p0_p5_1,&_44p0_p4_1}, cannam@86: {&_44p0_p6_0,&_44p0_p6_1,&_44p0_p6_2}, cannam@86: } cannam@86: }; cannam@86: cannam@86: static const static_bookblock _resbook_44p_1={ cannam@86: { cannam@86: {0}, cannam@86: {0,&_44p1_p1_0}, cannam@86: cannam@86: {&_44p1_p2_0,&_44p1_p2_1,0}, cannam@86: {&_44p1_p3_0,&_44p1_p3_1,0}, cannam@86: {&_44p1_p4_0,&_44p1_p4_1,0}, cannam@86: cannam@86: {&_44p1_p5_0,&_44p1_p5_1,&_44p1_p4_1}, cannam@86: {&_44p1_p6_0,&_44p1_p6_1,&_44p1_p6_2}, cannam@86: } cannam@86: }; cannam@86: cannam@86: static const static_bookblock _resbook_44p_2={ cannam@86: { cannam@86: {0}, cannam@86: {0,0,&_44p2_p1_0}, cannam@86: {0,&_44p2_p2_0,0}, cannam@86: cannam@86: {&_44p2_p3_0,&_44p2_p3_1,0}, cannam@86: {&_44p2_p4_0,&_44p2_p4_1,0}, cannam@86: {&_44p2_p5_0,&_44p2_p5_1,0}, cannam@86: cannam@86: {&_44p2_p6_0,&_44p2_p6_1,&_44p2_p5_1}, cannam@86: {&_44p2_p7_0,&_44p2_p7_1,&_44p2_p7_2,&_44p2_p7_3} cannam@86: } cannam@86: }; cannam@86: static const static_bookblock _resbook_44p_3={ cannam@86: { cannam@86: {0}, cannam@86: {0,0,&_44p3_p1_0}, cannam@86: {0,&_44p3_p2_0,0}, cannam@86: cannam@86: {&_44p3_p3_0,&_44p3_p3_1,0}, cannam@86: {&_44p3_p4_0,&_44p3_p4_1,0}, cannam@86: {&_44p3_p5_0,&_44p3_p5_1,0}, cannam@86: cannam@86: {&_44p3_p6_0,&_44p3_p6_1,&_44p3_p5_1}, cannam@86: {&_44p3_p7_0,&_44p3_p7_1,&_44p3_p7_2,&_44p3_p7_3} cannam@86: } cannam@86: }; cannam@86: static const static_bookblock _resbook_44p_4={ cannam@86: { cannam@86: {0}, cannam@86: {0,0,&_44p4_p1_0}, cannam@86: {0,&_44p4_p2_0,0}, cannam@86: cannam@86: {&_44p4_p3_0,&_44p4_p3_1,0}, cannam@86: {&_44p4_p4_0,&_44p4_p4_1,0}, cannam@86: {&_44p4_p5_0,&_44p4_p5_1,0}, cannam@86: cannam@86: {&_44p4_p6_0,&_44p4_p6_1,&_44p4_p5_1}, cannam@86: {&_44p4_p7_0,&_44p4_p7_1,&_44p4_p7_2,&_44p4_p7_3} cannam@86: } cannam@86: }; cannam@86: static const static_bookblock _resbook_44p_5={ cannam@86: { cannam@86: {0}, cannam@86: {0,0,&_44p5_p1_0}, cannam@86: {0,&_44p5_p2_0,0}, cannam@86: cannam@86: {&_44p5_p3_0,&_44p5_p3_1,0}, cannam@86: {&_44p5_p4_0,&_44p5_p4_1,0}, cannam@86: {&_44p5_p5_0,&_44p5_p5_1,0}, cannam@86: cannam@86: {&_44p5_p6_0,&_44p5_p6_1,&_44p5_p5_1}, cannam@86: {&_44p5_p7_0,&_44p5_p7_1,&_44p5_p7_2,&_44p5_p7_3} cannam@86: } cannam@86: }; cannam@86: static const static_bookblock _resbook_44p_6={ cannam@86: { cannam@86: {0}, cannam@86: {0,0,&_44p6_p1_0}, cannam@86: {0,&_44p6_p2_0,0}, cannam@86: cannam@86: {&_44p6_p3_0,&_44p6_p3_1,0}, cannam@86: {&_44p6_p4_0,&_44p6_p4_1,0}, cannam@86: {&_44p6_p5_0,&_44p6_p5_1,0}, cannam@86: cannam@86: {&_44p6_p6_0,&_44p6_p6_1,&_44p6_p5_1}, cannam@86: {&_44p6_p7_0,&_44p6_p7_1,&_44p6_p7_2,&_44p6_p7_3} cannam@86: } cannam@86: }; cannam@86: static const static_bookblock _resbook_44p_7={ cannam@86: { cannam@86: {0}, cannam@86: {0,0,&_44p7_p1_0}, cannam@86: {0,&_44p7_p2_0,0}, cannam@86: cannam@86: {&_44p7_p3_0,&_44p7_p3_1,0}, cannam@86: {&_44p7_p4_0,&_44p7_p4_1,0}, cannam@86: {&_44p7_p5_0,&_44p7_p5_1,0}, cannam@86: cannam@86: {&_44p7_p6_0,&_44p7_p6_1,&_44p7_p5_1}, cannam@86: {&_44p7_p7_0,&_44p7_p7_1,&_44p7_p7_2,&_44p7_p7_3} cannam@86: } cannam@86: }; cannam@86: static const static_bookblock _resbook_44p_8={ cannam@86: { cannam@86: {0}, cannam@86: {0,0,&_44p8_p1_0}, cannam@86: {0,&_44p8_p2_0,0}, cannam@86: cannam@86: {&_44p8_p3_0,&_44p8_p3_1,0}, cannam@86: {&_44p8_p4_0,&_44p8_p4_1,0}, cannam@86: {&_44p8_p5_0,&_44p8_p5_1,0}, cannam@86: cannam@86: {&_44p8_p6_0,&_44p8_p6_1,&_44p8_p5_1}, cannam@86: {&_44p8_p7_0,&_44p8_p7_1,&_44p8_p7_2,&_44p8_p7_3} cannam@86: } cannam@86: }; cannam@86: static const static_bookblock _resbook_44p_9={ cannam@86: { cannam@86: {0}, cannam@86: {0,0,&_44p9_p1_0}, cannam@86: {0,&_44p9_p2_0,0}, cannam@86: cannam@86: {&_44p9_p3_0,&_44p9_p3_1,0}, cannam@86: {&_44p9_p4_0,&_44p9_p4_1,0}, cannam@86: {&_44p9_p5_0,&_44p9_p5_1,0}, cannam@86: cannam@86: {&_44p9_p6_0,&_44p9_p6_1,&_44p9_p5_1}, cannam@86: {&_44p9_p7_0,&_44p9_p7_1,&_44p9_p7_2,&_44p9_p7_3} cannam@86: } cannam@86: }; cannam@86: cannam@86: static const static_bookblock _resbook_44p_ln1={ cannam@86: { cannam@86: {&_44pn1_l0_0,&_44pn1_l0_1,0}, cannam@86: {&_44pn1_l1_0,&_44pn1_p6_1,&_44pn1_p6_2}, cannam@86: } cannam@86: }; cannam@86: static const static_bookblock _resbook_44p_l0={ cannam@86: { cannam@86: {&_44p0_l0_0,&_44p0_l0_1,0}, cannam@86: {&_44p0_l1_0,&_44p0_p6_1,&_44p0_p6_2}, cannam@86: } cannam@86: }; cannam@86: static const static_bookblock _resbook_44p_l1={ cannam@86: { cannam@86: {&_44p1_l0_0,&_44p1_l0_1,0}, cannam@86: {&_44p1_l1_0,&_44p1_p6_1,&_44p1_p6_2}, cannam@86: } cannam@86: }; cannam@86: static const static_bookblock _resbook_44p_l2={ cannam@86: { cannam@86: {&_44p2_l0_0,&_44p2_l0_1,0}, cannam@86: {&_44p2_l1_0,&_44p2_p7_2,&_44p2_p7_3}, cannam@86: } cannam@86: }; cannam@86: static const static_bookblock _resbook_44p_l3={ cannam@86: { cannam@86: {&_44p3_l0_0,&_44p3_l0_1,0}, cannam@86: {&_44p3_l1_0,&_44p3_p7_2,&_44p3_p7_3}, cannam@86: } cannam@86: }; cannam@86: static const static_bookblock _resbook_44p_l4={ cannam@86: { cannam@86: {&_44p4_l0_0,&_44p4_l0_1,0}, cannam@86: {&_44p4_l1_0,&_44p4_p7_2,&_44p4_p7_3}, cannam@86: } cannam@86: }; cannam@86: static const static_bookblock _resbook_44p_l5={ cannam@86: { cannam@86: {&_44p5_l0_0,&_44p5_l0_1,0}, cannam@86: {&_44p5_l1_0,&_44p5_p7_2,&_44p5_p7_3}, cannam@86: } cannam@86: }; cannam@86: static const static_bookblock _resbook_44p_l6={ cannam@86: { cannam@86: {&_44p6_l0_0,&_44p6_l0_1,0}, cannam@86: {&_44p6_l1_0,&_44p6_p7_2,&_44p6_p7_3}, cannam@86: } cannam@86: }; cannam@86: static const static_bookblock _resbook_44p_l7={ cannam@86: { cannam@86: {&_44p7_l0_0,&_44p7_l0_1,0}, cannam@86: {&_44p7_l1_0,&_44p7_p7_2,&_44p7_p7_3}, cannam@86: } cannam@86: }; cannam@86: static const static_bookblock _resbook_44p_l8={ cannam@86: { cannam@86: {&_44p8_l0_0,&_44p8_l0_1,0}, cannam@86: {&_44p8_l1_0,&_44p8_p7_2,&_44p8_p7_3}, cannam@86: } cannam@86: }; cannam@86: static const static_bookblock _resbook_44p_l9={ cannam@86: { cannam@86: {&_44p9_l0_0,&_44p9_l0_1,0}, cannam@86: {&_44p9_l1_0,&_44p9_p7_2,&_44p9_p7_3}, cannam@86: } cannam@86: }; cannam@86: cannam@86: cannam@86: static const vorbis_info_mapping0 _map_nominal_51[2]={ cannam@86: {2, {0,0,0,0,0,1}, {0,2}, {0,2}, 4,{0,3,0,0},{2,4,1,3}}, cannam@86: {2, {0,0,0,0,0,1}, {1,2}, {1,2}, 4,{0,3,0,0},{2,4,1,3}} cannam@86: }; cannam@86: static const vorbis_info_mapping0 _map_nominal_51u[2]={ cannam@86: {2, {0,0,0,0,0,1}, {0,2}, {0,2}, 0,{0},{0}}, cannam@86: {2, {0,0,0,0,0,1}, {1,2}, {1,2}, 0,{0},{0}} cannam@86: }; cannam@86: cannam@86: static const vorbis_residue_template _res_44p51_n1[]={ cannam@86: {2,0,30, &_residue_44p_lo, cannam@86: &_huff_book__44pn1_short,&_huff_book__44pn1_short, cannam@86: &_resbook_44p_n1,&_resbook_44p_n1}, cannam@86: cannam@86: {2,0,30, &_residue_44p_lo, cannam@86: &_huff_book__44pn1_long,&_huff_book__44pn1_long, cannam@86: &_resbook_44p_n1,&_resbook_44p_n1}, cannam@86: cannam@86: {1,2,6, &_residue_44p_lfe, cannam@86: &_huff_book__44pn1_lfe,&_huff_book__44pn1_lfe, cannam@86: &_resbook_44p_ln1,&_resbook_44p_ln1} cannam@86: }; cannam@86: static const vorbis_residue_template _res_44p51_0[]={ cannam@86: {2,0,15, &_residue_44p_lo, cannam@86: &_huff_book__44p0_short,&_huff_book__44p0_short, cannam@86: &_resbook_44p_0,&_resbook_44p_0}, cannam@86: cannam@86: {2,0,30, &_residue_44p_lo, cannam@86: &_huff_book__44p0_long,&_huff_book__44p0_long, cannam@86: &_resbook_44p_0,&_resbook_44p_0}, cannam@86: cannam@86: {1,2,6, &_residue_44p_lfe, cannam@86: &_huff_book__44p0_lfe,&_huff_book__44p0_lfe, cannam@86: &_resbook_44p_l0,&_resbook_44p_l0} cannam@86: }; cannam@86: static const vorbis_residue_template _res_44p51_1[]={ cannam@86: {2,0,15, &_residue_44p_lo, cannam@86: &_huff_book__44p1_short,&_huff_book__44p1_short, cannam@86: &_resbook_44p_1,&_resbook_44p_1}, cannam@86: cannam@86: {2,0,30, &_residue_44p_lo, cannam@86: &_huff_book__44p1_long,&_huff_book__44p1_long, cannam@86: &_resbook_44p_1,&_resbook_44p_1}, cannam@86: cannam@86: {1,2,6, &_residue_44p_lfe, cannam@86: &_huff_book__44p1_lfe,&_huff_book__44p1_lfe, cannam@86: &_resbook_44p_l1,&_resbook_44p_l1} cannam@86: }; cannam@86: static const vorbis_residue_template _res_44p51_2[]={ cannam@86: {2,0,15, &_residue_44p, cannam@86: &_huff_book__44p2_short,&_huff_book__44p2_short, cannam@86: &_resbook_44p_2,&_resbook_44p_2}, cannam@86: cannam@86: {2,0,30, &_residue_44p, cannam@86: &_huff_book__44p2_long,&_huff_book__44p2_long, cannam@86: &_resbook_44p_2,&_resbook_44p_2}, cannam@86: cannam@86: {1,2,6, &_residue_44p_lfe, cannam@86: &_huff_book__44p2_lfe,&_huff_book__44p2_lfe, cannam@86: &_resbook_44p_l2,&_resbook_44p_l2} cannam@86: }; cannam@86: static const vorbis_residue_template _res_44p51_3[]={ cannam@86: {2,0,15, &_residue_44p, cannam@86: &_huff_book__44p3_short,&_huff_book__44p3_short, cannam@86: &_resbook_44p_3,&_resbook_44p_3}, cannam@86: cannam@86: {2,0,30, &_residue_44p, cannam@86: &_huff_book__44p3_long,&_huff_book__44p3_long, cannam@86: &_resbook_44p_3,&_resbook_44p_3}, cannam@86: cannam@86: {1,2,6, &_residue_44p_lfe, cannam@86: &_huff_book__44p3_lfe,&_huff_book__44p3_lfe, cannam@86: &_resbook_44p_l3,&_resbook_44p_l3} cannam@86: }; cannam@86: static const vorbis_residue_template _res_44p51_4[]={ cannam@86: {2,0,15, &_residue_44p, cannam@86: &_huff_book__44p4_short,&_huff_book__44p4_short, cannam@86: &_resbook_44p_4,&_resbook_44p_4}, cannam@86: cannam@86: {2,0,30, &_residue_44p, cannam@86: &_huff_book__44p4_long,&_huff_book__44p4_long, cannam@86: &_resbook_44p_4,&_resbook_44p_4}, cannam@86: cannam@86: {1,2,6, &_residue_44p_lfe, cannam@86: &_huff_book__44p4_lfe,&_huff_book__44p4_lfe, cannam@86: &_resbook_44p_l4,&_resbook_44p_l4} cannam@86: }; cannam@86: static const vorbis_residue_template _res_44p51_5[]={ cannam@86: {2,0,15, &_residue_44p_hi, cannam@86: &_huff_book__44p5_short,&_huff_book__44p5_short, cannam@86: &_resbook_44p_5,&_resbook_44p_5}, cannam@86: cannam@86: {2,0,30, &_residue_44p_hi, cannam@86: &_huff_book__44p5_long,&_huff_book__44p5_long, cannam@86: &_resbook_44p_5,&_resbook_44p_5}, cannam@86: cannam@86: {1,2,6, &_residue_44p_lfe, cannam@86: &_huff_book__44p5_lfe,&_huff_book__44p5_lfe, cannam@86: &_resbook_44p_l5,&_resbook_44p_l5} cannam@86: }; cannam@86: static const vorbis_residue_template _res_44p51_6[]={ cannam@86: {2,0,15, &_residue_44p_hi, cannam@86: &_huff_book__44p6_short,&_huff_book__44p6_short, cannam@86: &_resbook_44p_6,&_resbook_44p_6}, cannam@86: cannam@86: {2,0,30, &_residue_44p_hi, cannam@86: &_huff_book__44p6_long,&_huff_book__44p6_long, cannam@86: &_resbook_44p_6,&_resbook_44p_6}, cannam@86: cannam@86: {1,2,6, &_residue_44p_lfe, cannam@86: &_huff_book__44p6_lfe,&_huff_book__44p6_lfe, cannam@86: &_resbook_44p_l6,&_resbook_44p_l6} cannam@86: }; cannam@86: cannam@86: cannam@86: static const vorbis_residue_template _res_44p51_7[]={ cannam@86: {2,0,15, &_residue_44p_hi, cannam@86: &_huff_book__44p7_short,&_huff_book__44p7_short, cannam@86: &_resbook_44p_7,&_resbook_44p_7}, cannam@86: cannam@86: {2,0,30, &_residue_44p_hi, cannam@86: &_huff_book__44p7_long,&_huff_book__44p7_long, cannam@86: &_resbook_44p_7,&_resbook_44p_7}, cannam@86: cannam@86: {1,2,6, &_residue_44p_lfe, cannam@86: &_huff_book__44p6_lfe,&_huff_book__44p6_lfe, cannam@86: &_resbook_44p_l6,&_resbook_44p_l6} cannam@86: }; cannam@86: static const vorbis_residue_template _res_44p51_8[]={ cannam@86: {2,0,15, &_residue_44p_hi, cannam@86: &_huff_book__44p8_short,&_huff_book__44p8_short, cannam@86: &_resbook_44p_8,&_resbook_44p_8}, cannam@86: cannam@86: {2,0,30, &_residue_44p_hi, cannam@86: &_huff_book__44p8_long,&_huff_book__44p8_long, cannam@86: &_resbook_44p_8,&_resbook_44p_8}, cannam@86: cannam@86: {1,2,6, &_residue_44p_lfe, cannam@86: &_huff_book__44p6_lfe,&_huff_book__44p6_lfe, cannam@86: &_resbook_44p_l6,&_resbook_44p_l6} cannam@86: }; cannam@86: static const vorbis_residue_template _res_44p51_9[]={ cannam@86: {2,0,15, &_residue_44p_hi, cannam@86: &_huff_book__44p9_short,&_huff_book__44p9_short, cannam@86: &_resbook_44p_9,&_resbook_44p_9}, cannam@86: cannam@86: {2,0,30, &_residue_44p_hi, cannam@86: &_huff_book__44p9_long,&_huff_book__44p9_long, cannam@86: &_resbook_44p_9,&_resbook_44p_9}, cannam@86: cannam@86: {1,2,6, &_residue_44p_lfe, cannam@86: &_huff_book__44p6_lfe,&_huff_book__44p6_lfe, cannam@86: &_resbook_44p_l6,&_resbook_44p_l6} cannam@86: }; cannam@86: cannam@86: static const vorbis_mapping_template _mapres_template_44_51[]={ cannam@86: { _map_nominal_51, _res_44p51_n1 }, /* -1 */ cannam@86: { _map_nominal_51, _res_44p51_0 }, /* 0 */ cannam@86: { _map_nominal_51, _res_44p51_1 }, /* 1 */ cannam@86: { _map_nominal_51, _res_44p51_2 }, /* 2 */ cannam@86: { _map_nominal_51, _res_44p51_3 }, /* 3 */ cannam@86: { _map_nominal_51, _res_44p51_4 }, /* 4 */ cannam@86: { _map_nominal_51u, _res_44p51_5 }, /* 5 */ cannam@86: { _map_nominal_51u, _res_44p51_6 }, /* 6 */ cannam@86: { _map_nominal_51u, _res_44p51_7 }, /* 7 */ cannam@86: { _map_nominal_51u, _res_44p51_8 }, /* 8 */ cannam@86: { _map_nominal_51u, _res_44p51_9 }, /* 9 */ cannam@86: };