Path: blob/master/thirdparty/libvorbis/modes/residue_44u.h
9903 views
/********************************************************************1* *2* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *3* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *4* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *5* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *6* *7* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 *8* by the Xiph.Org Foundation https://xiph.org/ *9* *10********************************************************************1112function: toplevel residue templates for 32/44.1/48kHz uncoupled1314********************************************************************/1516#include "vorbis/codec.h"17#include "backends.h"18#include "books/uncoupled/res_books_uncoupled.h"1920/***** residue backends *********************************************/212223static const vorbis_info_residue0 _residue_44_low_un={240,-1, -1, 8,-1,-1,25{0},26{-1},27{ 0, 1, 1, 2, 2, 4, 28},28{ -1, 25, -1, 45, -1, -1, -1}29};3031static const vorbis_info_residue0 _residue_44_mid_un={320,-1, -1, 10,-1,-1,33/* 0 1 2 3 4 5 6 7 8 9 */34{0},35{-1},36{ 0, 1, 1, 2, 2, 4, 4, 16, 60},37{ -1, 30, -1, 50, -1, 80, -1, -1, -1}38};3940static const vorbis_info_residue0 _residue_44_hi_un={410,-1, -1, 10,-1,-1,42/* 0 1 2 3 4 5 6 7 8 9 */43{0},44{-1},45{ 0, 1, 2, 4, 8, 16, 32, 71,157},46{ -1, -1, -1, -1, -1, -1, -1, -1, -1}47};4849/* mapping conventions:50only one submap (this would change for efficient 5.1 support for example)*/51/* Four psychoacoustic profiles are used, one for each blocktype */52static const vorbis_info_mapping0 _map_nominal_u[2]={53{1, {0,0,0,0,0,0}, {0}, {0}, 0,{0},{0}},54{1, {0,0,0,0,0,0}, {1}, {1}, 0,{0},{0}}55};5657static const static_bookblock _resbook_44u_n1={58{59{0},60{0,0,&_44un1__p1_0},61{0,0,&_44un1__p2_0},62{0,0,&_44un1__p3_0},63{0,0,&_44un1__p4_0},64{0,0,&_44un1__p5_0},65{&_44un1__p6_0,&_44un1__p6_1},66{&_44un1__p7_0,&_44un1__p7_1,&_44un1__p7_2}67}68};69static const static_bookblock _resbook_44u_0={70{71{0},72{0,0,&_44u0__p1_0},73{0,0,&_44u0__p2_0},74{0,0,&_44u0__p3_0},75{0,0,&_44u0__p4_0},76{0,0,&_44u0__p5_0},77{&_44u0__p6_0,&_44u0__p6_1},78{&_44u0__p7_0,&_44u0__p7_1,&_44u0__p7_2}79}80};81static const static_bookblock _resbook_44u_1={82{83{0},84{0,0,&_44u1__p1_0},85{0,0,&_44u1__p2_0},86{0,0,&_44u1__p3_0},87{0,0,&_44u1__p4_0},88{0,0,&_44u1__p5_0},89{&_44u1__p6_0,&_44u1__p6_1},90{&_44u1__p7_0,&_44u1__p7_1,&_44u1__p7_2}91}92};93static const static_bookblock _resbook_44u_2={94{95{0},96{0,0,&_44u2__p1_0},97{0,0,&_44u2__p2_0},98{0,0,&_44u2__p3_0},99{0,0,&_44u2__p4_0},100{0,0,&_44u2__p5_0},101{&_44u2__p6_0,&_44u2__p6_1},102{&_44u2__p7_0,&_44u2__p7_1,&_44u2__p7_2}103}104};105static const static_bookblock _resbook_44u_3={106{107{0},108{0,0,&_44u3__p1_0},109{0,0,&_44u3__p2_0},110{0,0,&_44u3__p3_0},111{0,0,&_44u3__p4_0},112{0,0,&_44u3__p5_0},113{&_44u3__p6_0,&_44u3__p6_1},114{&_44u3__p7_0,&_44u3__p7_1,&_44u3__p7_2}115}116};117static const static_bookblock _resbook_44u_4={118{119{0},120{0,0,&_44u4__p1_0},121{0,0,&_44u4__p2_0},122{0,0,&_44u4__p3_0},123{0,0,&_44u4__p4_0},124{0,0,&_44u4__p5_0},125{&_44u4__p6_0,&_44u4__p6_1},126{&_44u4__p7_0,&_44u4__p7_1,&_44u4__p7_2}127}128};129static const static_bookblock _resbook_44u_5={130{131{0},132{0,0,&_44u5__p1_0},133{0,0,&_44u5__p2_0},134{0,0,&_44u5__p3_0},135{0,0,&_44u5__p4_0},136{0,0,&_44u5__p5_0},137{0,0,&_44u5__p6_0},138{&_44u5__p7_0,&_44u5__p7_1},139{&_44u5__p8_0,&_44u5__p8_1},140{&_44u5__p9_0,&_44u5__p9_1,&_44u5__p9_2}141}142};143static const static_bookblock _resbook_44u_6={144{145{0},146{0,0,&_44u6__p1_0},147{0,0,&_44u6__p2_0},148{0,0,&_44u6__p3_0},149{0,0,&_44u6__p4_0},150{0,0,&_44u6__p5_0},151{0,0,&_44u6__p6_0},152{&_44u6__p7_0,&_44u6__p7_1},153{&_44u6__p8_0,&_44u6__p8_1},154{&_44u6__p9_0,&_44u6__p9_1,&_44u6__p9_2}155}156};157static const static_bookblock _resbook_44u_7={158{159{0},160{0,0,&_44u7__p1_0},161{0,0,&_44u7__p2_0},162{0,0,&_44u7__p3_0},163{0,0,&_44u7__p4_0},164{0,0,&_44u7__p5_0},165{0,0,&_44u7__p6_0},166{&_44u7__p7_0,&_44u7__p7_1},167{&_44u7__p8_0,&_44u7__p8_1},168{&_44u7__p9_0,&_44u7__p9_1,&_44u7__p9_2}169}170};171static const static_bookblock _resbook_44u_8={172{173{0},174{0,0,&_44u8_p1_0},175{0,0,&_44u8_p2_0},176{0,0,&_44u8_p3_0},177{0,0,&_44u8_p4_0},178{&_44u8_p5_0,&_44u8_p5_1},179{&_44u8_p6_0,&_44u8_p6_1},180{&_44u8_p7_0,&_44u8_p7_1},181{&_44u8_p8_0,&_44u8_p8_1},182{&_44u8_p9_0,&_44u8_p9_1,&_44u8_p9_2}183}184};185static const static_bookblock _resbook_44u_9={186{187{0},188{0,0,&_44u9_p1_0},189{0,0,&_44u9_p2_0},190{0,0,&_44u9_p3_0},191{0,0,&_44u9_p4_0},192{&_44u9_p5_0,&_44u9_p5_1},193{&_44u9_p6_0,&_44u9_p6_1},194{&_44u9_p7_0,&_44u9_p7_1},195{&_44u9_p8_0,&_44u9_p8_1},196{&_44u9_p9_0,&_44u9_p9_1,&_44u9_p9_2}197}198};199200static const vorbis_residue_template _res_44u_n1[]={201{1,0,32, &_residue_44_low_un,202&_huff_book__44un1__short,&_huff_book__44un1__short,203&_resbook_44u_n1,&_resbook_44u_n1},204205{1,0,32, &_residue_44_low_un,206&_huff_book__44un1__long,&_huff_book__44un1__long,207&_resbook_44u_n1,&_resbook_44u_n1}208};209static const vorbis_residue_template _res_44u_0[]={210{1,0,16, &_residue_44_low_un,211&_huff_book__44u0__short,&_huff_book__44u0__short,212&_resbook_44u_0,&_resbook_44u_0},213214{1,0,32, &_residue_44_low_un,215&_huff_book__44u0__long,&_huff_book__44u0__long,216&_resbook_44u_0,&_resbook_44u_0}217};218static const vorbis_residue_template _res_44u_1[]={219{1,0,16, &_residue_44_low_un,220&_huff_book__44u1__short,&_huff_book__44u1__short,221&_resbook_44u_1,&_resbook_44u_1},222223{1,0,32, &_residue_44_low_un,224&_huff_book__44u1__long,&_huff_book__44u1__long,225&_resbook_44u_1,&_resbook_44u_1}226};227static const vorbis_residue_template _res_44u_2[]={228{1,0,16, &_residue_44_low_un,229&_huff_book__44u2__short,&_huff_book__44u2__short,230&_resbook_44u_2,&_resbook_44u_2},231232{1,0,32, &_residue_44_low_un,233&_huff_book__44u2__long,&_huff_book__44u2__long,234&_resbook_44u_2,&_resbook_44u_2}235};236static const vorbis_residue_template _res_44u_3[]={237{1,0,16, &_residue_44_low_un,238&_huff_book__44u3__short,&_huff_book__44u3__short,239&_resbook_44u_3,&_resbook_44u_3},240241{1,0,32, &_residue_44_low_un,242&_huff_book__44u3__long,&_huff_book__44u3__long,243&_resbook_44u_3,&_resbook_44u_3}244};245static const vorbis_residue_template _res_44u_4[]={246{1,0,16, &_residue_44_low_un,247&_huff_book__44u4__short,&_huff_book__44u4__short,248&_resbook_44u_4,&_resbook_44u_4},249250{1,0,32, &_residue_44_low_un,251&_huff_book__44u4__long,&_huff_book__44u4__long,252&_resbook_44u_4,&_resbook_44u_4}253};254255static const vorbis_residue_template _res_44u_5[]={256{1,0,16, &_residue_44_mid_un,257&_huff_book__44u5__short,&_huff_book__44u5__short,258&_resbook_44u_5,&_resbook_44u_5},259260{1,0,32, &_residue_44_mid_un,261&_huff_book__44u5__long,&_huff_book__44u5__long,262&_resbook_44u_5,&_resbook_44u_5}263};264265static const vorbis_residue_template _res_44u_6[]={266{1,0,16, &_residue_44_mid_un,267&_huff_book__44u6__short,&_huff_book__44u6__short,268&_resbook_44u_6,&_resbook_44u_6},269270{1,0,32, &_residue_44_mid_un,271&_huff_book__44u6__long,&_huff_book__44u6__long,272&_resbook_44u_6,&_resbook_44u_6}273};274275static const vorbis_residue_template _res_44u_7[]={276{1,0,16, &_residue_44_mid_un,277&_huff_book__44u7__short,&_huff_book__44u7__short,278&_resbook_44u_7,&_resbook_44u_7},279280{1,0,32, &_residue_44_mid_un,281&_huff_book__44u7__long,&_huff_book__44u7__long,282&_resbook_44u_7,&_resbook_44u_7}283};284285static const vorbis_residue_template _res_44u_8[]={286{1,0,16, &_residue_44_hi_un,287&_huff_book__44u8__short,&_huff_book__44u8__short,288&_resbook_44u_8,&_resbook_44u_8},289290{1,0,32, &_residue_44_hi_un,291&_huff_book__44u8__long,&_huff_book__44u8__long,292&_resbook_44u_8,&_resbook_44u_8}293};294static const vorbis_residue_template _res_44u_9[]={295{1,0,16, &_residue_44_hi_un,296&_huff_book__44u9__short,&_huff_book__44u9__short,297&_resbook_44u_9,&_resbook_44u_9},298299{1,0,32, &_residue_44_hi_un,300&_huff_book__44u9__long,&_huff_book__44u9__long,301&_resbook_44u_9,&_resbook_44u_9}302};303304static const vorbis_mapping_template _mapres_template_44_uncoupled[]={305{ _map_nominal_u, _res_44u_n1 }, /* -1 */306{ _map_nominal_u, _res_44u_0 }, /* 0 */307{ _map_nominal_u, _res_44u_1 }, /* 1 */308{ _map_nominal_u, _res_44u_2 }, /* 2 */309{ _map_nominal_u, _res_44u_3 }, /* 3 */310{ _map_nominal_u, _res_44u_4 }, /* 4 */311{ _map_nominal_u, _res_44u_5 }, /* 5 */312{ _map_nominal_u, _res_44u_6 }, /* 6 */313{ _map_nominal_u, _res_44u_7 }, /* 7 */314{ _map_nominal_u, _res_44u_8 }, /* 8 */315{ _map_nominal_u, _res_44u_9 }, /* 9 */316};317318319