⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 masking.h

📁 OGG文件格式音频数解压缩SDK.现在OGG文件格式在一些游戏开发中使用的比较多.
💻 H
📖 第 1 页 / 共 3 页
字号:
/********************************************************************
 *                                                                  *
 * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
 * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
 * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
 * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
 *                                                                  *
 * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
 * by the XIPHOPHORUS Company http://www.xiph.org/                  *
 *                                                                  *
 ********************************************************************

 function: masking curve data for psychoacoustics
 last mod: $Id: masking.h,v 1.24 2002/07/01 11:20:11 xiphmont Exp $

 ********************************************************************/

#ifndef _V_MASKING_H_
#define _V_MASKING_H_

/* more detailed ATH; the bass if flat to save stressing the floor
   overly for only a bin or two of savings. */

#define MAX_ATH 88
static float ATH[]={
  /*15*/  -51, -52, -53, -54, -55, -56, -57, -58,  
  /*31*/  -59, -60, -61, -62, -63, -64, -65, -66,
  /*63*/  -67, -68, -69, -70, -71, -72, -73, -74, 
  /*125*/ -75, -76, -77, -78, -80, -81, -82, -83,
  /*250*/ -84, -85, -86, -87, -88, -88, -89, -89, 
  /*500*/ -90, -91, -91, -92, -93, -94, -95, -96,
  /*1k*/  -96, -97, -98, -98, -99, -99,-100,-100,
  /*2k*/ -101,-102,-103,-104,-106,-107,-107,-107,
  /*4k*/ -107,-105,-103,-102,-101, -99, -98, -96,
  /*8k*/  -95, -95, -96, -97, -96, -95, -93, -90,
  /*16k*/ -80, -70, -50, -40, -30, -30, -30, -30
};

/* The tone masking curves from Ehmer's and Fielder's papers have been
   replaced by an empirically collected data set.  The previously
   published values were, far too often, simply on crack. */

#define EHMER_OFFSET 16
#define EHMER_MAX 56

/* masking tones from -50 to 0dB, 62.5 through 16kHz at half octaves
   test tones from -2 octaves to +5 octaves sampled at eighth octaves */
/* (Vorbis 0dB, the loudest possible tone, is assumed to be ~100dB SPL
   for collection of these curves) */

static float tonemasks[P_BANDS][6][EHMER_MAX]={
  /* 62.5 Hz */
  {{ -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60, 
     -60,  -60,  -60,  -60,  -62,  -62,  -65,  -73, 
     -69,  -68,  -68,  -67,  -70,  -70,  -72,  -74, 
     -75,  -79,  -79,  -80,  -83,  -88,  -93, -100, 
     -110, -999, -999, -999, -999, -999, -999, -999, 
     -999, -999, -999, -999, -999, -999, -999, -999, 
     -999, -999, -999, -999, -999, -999, -999, -999},
   { -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48, 
     -48,  -48,  -48,  -48,  -48,  -53,  -61,  -66, 
     -66,  -68,  -67,  -70,  -76,  -76,  -72,  -73, 
     -75,  -76,  -78,  -79,  -83,  -88,  -93, -100, 
     -110, -999, -999, -999, -999, -999, -999, -999, 
     -999, -999, -999, -999, -999, -999, -999, -999, 
     -999, -999, -999, -999, -999, -999, -999, -999},
   { -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37, 
     -38,  -40,  -42,  -46,  -48,  -53,  -55,  -62, 
     -65,  -58,  -56,  -56,  -61,  -60,  -65,  -67, 
     -69,  -71,  -77,  -77,  -78,  -80,  -82,  -84, 
     -88,  -93,  -98, -106, -112, -999, -999, -999, 
     -999, -999, -999, -999, -999, -999, -999, -999, 
     -999, -999, -999, -999, -999, -999, -999, -999},
   { -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25, 
     -25,  -26,  -27,  -29,  -32,  -38,  -48,  -52, 
     -52,  -50,  -48,  -48,  -51,  -52,  -54,  -60, 
     -67,  -67,  -66,  -68,  -69,  -73,  -73,  -76, 
     -80,  -81,  -81,  -85,  -85,  -86,  -88,  -93, 
     -100, -110, -999, -999, -999, -999, -999, -999, 
     -999, -999, -999, -999, -999, -999, -999, -999},
   { -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16, 
     -17,  -19,  -20,  -22,  -26,  -28,  -31,  -40, 
     -47,  -39,  -39,  -40,  -42,  -43,  -47,  -51, 
     -57,  -52,  -55,  -55,  -60,  -58,  -62,  -63, 
     -70,  -67,  -69,  -72,  -73,  -77,  -80,  -82, 
     -83,  -87,  -90,  -94,  -98, -104, -115, -999, 
     -999, -999, -999, -999, -999, -999, -999, -999},
   {  -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8, 
      -8,   -8,  -10,  -11,  -15,  -19,  -25,  -30, 
      -34,  -31,  -30,  -31,  -29,  -32,  -35,  -42, 
      -48,  -42,  -44,  -46,  -50,  -50,  -51,  -52, 
      -59,  -54,  -55,  -55,  -58,  -62,  -63,  -66, 
      -72,  -73,  -76,  -75,  -78,  -80,  -80,  -81, 
      -84,  -88,  -90,  -94,  -98, -101, -106, -110}}, 
  /* 88Hz */
  {{ -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66, 
     -66,  -66,  -66,  -66,  -66,  -67,  -67,  -67, 
     -76,  -72,  -71,  -74,  -76,  -76,  -75,  -78, 
     -79,  -79,  -81,  -83,  -86,  -89,  -93,  -97, 
     -100, -105, -110, -999, -999, -999, -999, -999, 
     -999, -999, -999, -999, -999, -999, -999, -999, 
     -999, -999, -999, -999, -999, -999, -999, -999},
   { -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47, 
     -47,  -47,  -47,  -48,  -51,  -55,  -59,  -66, 
     -66,  -66,  -67,  -66,  -68,  -69,  -70,  -74, 
     -79,  -77,  -77,  -78,  -80,  -81,  -82,  -84, 
     -86,  -88,  -91,  -95, -100, -108, -116, -999, 
     -999, -999, -999, -999, -999, -999, -999, -999, 
     -999, -999, -999, -999, -999, -999, -999, -999}, 
   { -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36, 
     -36,  -37,  -37,  -41,  -44,  -48,  -51,  -58, 
     -62,  -60,  -57,  -59,  -59,  -60,  -63,  -65, 
     -72,  -71,  -70,  -72,  -74,  -77,  -76,  -78, 
     -81,  -81,  -80,  -83,  -86,  -91,  -96, -100, 
     -105, -110, -999, -999, -999, -999, -999, -999, 
     -999, -999, -999, -999, -999, -999, -999, -999},
   { -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28, 
     -28,  -30,  -32,  -32,  -33,  -35,  -41,  -49, 
     -50,  -49,  -47,  -48,  -48,  -52,  -51,  -57, 
     -65,  -61,  -59,  -61,  -64,  -69,  -70,  -74, 
     -77,  -77,  -78,  -81,  -84,  -85,  -87,  -90, 
     -92,  -96, -100, -107, -112, -999, -999, -999, 
     -999, -999, -999, -999, -999, -999, -999, -999},
   { -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19, 
     -20,  -21,  -23,  -27,  -30,  -35,  -36,  -41, 
     -46,  -44,  -42,  -40,  -41,  -41,  -43,  -48, 
     -55,  -53,  -52,  -53,  -56,  -59,  -58,  -60, 
     -67,  -66,  -69,  -71,  -72,  -75,  -79,  -81, 
     -84,  -87,  -90,  -93,  -97, -101, -107, -114, 
     -999, -999, -999, -999, -999, -999, -999, -999},
   {  -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9, 
      -11,  -12,  -12,  -15,  -16,  -20,  -23,  -30, 
      -37,  -34,  -33,  -34,  -31,  -32,  -32,  -38, 
      -47,  -44,  -41,  -40,  -47,  -49,  -46,  -46, 
      -58,  -50,  -50,  -54,  -58,  -62,  -64,  -67, 
      -67,  -70,  -72,  -76,  -79,  -83,  -87,  -91, 
      -96, -100, -104, -110, -999, -999, -999, -999}}, 
  /* 125 Hz */
  {{ -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62, 
     -62,  -62,  -63,  -64,  -66,  -67,  -66,  -68, 
     -75,  -72,  -76,  -75,  -76,  -78,  -79,  -82, 
     -84,  -85,  -90,  -94, -101, -110, -999, -999, 
     -999, -999, -999, -999, -999, -999, -999, -999, 
     -999, -999, -999, -999, -999, -999, -999, -999, 
     -999, -999, -999, -999, -999, -999, -999, -999}, 
   { -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59, 
     -59,  -59,  -59,  -60,  -60,  -61,  -63,  -66, 
     -71,  -68,  -70,  -70,  -71,  -72,  -72,  -75, 
     -81,  -78,  -79,  -82,  -83,  -86,  -90,  -97, 
     -103, -113, -999, -999, -999, -999, -999, -999, 
     -999, -999, -999, -999, -999, -999, -999, -999, 
     -999, -999, -999, -999, -999, -999, -999, -999}, 
   { -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53, 
     -53,  -54,  -55,  -57,  -56,  -57,  -55,  -61, 
     -65,  -60,  -60,  -62,  -63,  -63,  -66,  -68, 
     -74,  -73,  -75,  -75,  -78,  -80,  -80,  -82, 
     -85,  -90,  -96, -101, -108, -999, -999, -999, 
     -999, -999, -999, -999, -999, -999, -999, -999, 
     -999, -999, -999, -999, -999, -999, -999, -999}, 
   { -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46, 
     -46,  -46,  -47,  -47,  -47,  -47,  -48,  -51, 
     -57,  -51,  -49,  -50,  -51,  -53,  -54,  -59, 
     -66,  -60,  -62,  -67,  -67,  -70,  -72,  -75, 
     -76,  -78,  -81,  -85,  -88,  -94,  -97, -104, 
     -112, -999, -999, -999, -999, -999, -999, -999, 
     -999, -999, -999, -999, -999, -999, -999, -999}, 
   { -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36, 
     -39,  -41,  -42,  -42,  -39,  -38,  -41,  -43, 
     -52,  -44,  -40,  -39,  -37,  -37,  -40,  -47, 
     -54,  -50,  -48,  -50,  -55,  -61,  -59,  -62, 
     -66,  -66,  -66,  -69,  -69,  -73,  -74,  -74, 
     -75,  -77,  -79,  -82,  -87,  -91,  -95, -100, 
     -108, -115, -999, -999, -999, -999, -999, -999}, 
   { -28,  -26,  -24,  -22,  -20,  -20,  -23,  -29, 
     -30,  -31,  -28,  -27,  -28,  -28,  -28,  -35, 
     -40,  -33,  -32,  -29,  -30,  -30,  -30,  -37, 
     -45,  -41,  -37,  -38,  -45,  -47,  -47,  -48, 
     -53,  -49,  -48,  -50,  -49,  -49,  -51,  -52, 
     -58,  -56,  -57,  -56,  -60,  -61,  -62,  -70, 
     -72,  -74,  -78,  -83,  -88,  -93, -100, -106}}, 
  /* 177 Hz */
  {{-999, -999, -999, -999, -999, -999, -999, -999, 
    -999, -110, -105, -100,  -95,  -91,  -87,  -83, 
    -80,  -78,  -76,  -78,  -78,  -81,  -83,  -85, 
    -86,  -85,  -86,  -87,  -90,  -97, -107, -999, 
    -999, -999, -999, -999, -999, -999, -999, -999, 
    -999, -999, -999, -999, -999, -999, -999, -999, 
    -999, -999, -999, -999, -999, -999, -999, -999}, 
   {-999, -999, -999, -110, -105, -100,  -95,  -90, 
    -85,  -81,  -77,  -73,  -70,  -67,  -67,  -68, 
    -75,  -73,  -70,  -69,  -70,  -72,  -75,  -79, 
    -84,  -83,  -84,  -86,  -88,  -89,  -89,  -93, 
    -98, -105, -112, -999, -999, -999, -999, -999, 
    -999, -999, -999, -999, -999, -999, -999, -999, 
    -999, -999, -999, -999, -999, -999, -999, -999}, 
   {-105, -100,  -95,  -90,  -85,  -80,  -76,  -71, 
    -68,  -68,  -65,  -63,  -63,  -62,  -62,  -64, 
    -65,  -64,  -61,  -62,  -63,  -64,  -66,  -68, 
    -73,  -73,  -74,  -75,  -76,  -81,  -83,  -85, 
    -88,  -89,  -92,  -95, -100, -108, -999, -999, 
    -999, -999, -999, -999, -999, -999, -999, -999, 
    -999, -999, -999, -999, -999, -999, -999, -999}, 
   { -80,  -75,  -71,  -68,  -65,  -63,  -62,  -61, 
     -61,  -61,  -61,  -59,  -56,  -57,  -53,  -50, 
     -58,  -52,  -50,  -50,  -52,  -53,  -54,  -58, 
     -67,  -63,  -67,  -68,  -72,  -75,  -78,  -80, 
     -81,  -81,  -82,  -85,  -89,  -90,  -93,  -97, 
     -101, -107, -114, -999, -999, -999, -999, -999, 
     -999, -999, -999, -999, -999, -999, -999, -999}, 
   { -65,  -61,  -59,  -57,  -56,  -55,  -55,  -56, 
     -56,  -57,  -55,  -53,  -52,  -47,  -44,  -44, 
     -50,  -44,  -41,  -39,  -39,  -42,  -40,  -46, 
     -51,  -49,  -50,  -53,  -54,  -63,  -60,  -61, 
     -62,  -66,  -66,  -66,  -70,  -73,  -74,  -75, 
     -76,  -75,  -79,  -85,  -89,  -91,  -96, -102, 
     -110, -999, -999, -999, -999, -999, -999, -999}, 
   { -52,  -50,  -49,  -49,  -48,  -48,  -48,  -49, 
     -50,  -50,  -49,  -46,  -43,  -39,  -35,  -33, 
     -38,  -36,  -32,  -29,  -32,  -32,  -32,  -35, 
     -44,  -39,  -38,  -38,  -46,  -50,  -45,  -46, 
     -53,  -50,  -50,  -50,  -54,  -54,  -53,  -53, 
     -56,  -57,  -59,  -66,  -70,  -72,  -74,  -79, 
     -83,  -85,  -90, -97, -114, -999, -999, -999}}, 
  /* 250 Hz */
  {{-999, -999, -999, -999, -999, -999, -110, -105, 
    -100,  -95,  -90,  -86,  -80,  -75,  -75,  -79, 
    -80,  -79,  -80,  -81,  -82,  -88,  -95, -103, 
    -110, -999, -999, -999, -999, -999, -999, -999, 
    -999, -999, -999, -999, -999, -999, -999, -999, 
    -999, -999, -999, -999, -999, -999, -999, -999, 
    -999, -999, -999, -999, -999, -999, -999, -999}, 
   {-999, -999, -999, -999, -108, -103,  -98,  -93, 
    -88,  -83,  -79,  -78,  -75,  -71,  -67,  -68, 
    -73,  -73,  -72,  -73,  -75,  -77,  -80,  -82, 
    -88,  -93, -100, -107, -114, -999, -999, -999, 
    -999, -999, -999, -999, -999, -999, -999, -999, 
    -999, -999, -999, -999, -999, -999, -999, -999, 
    -999, -999, -999, -999, -999, -999, -999, -999}, 
   {-999, -999, -999, -110, -105, -101,  -96,  -90, 
    -86,  -81,  -77,  -73,  -69,  -66,  -61,  -62, 
    -66,  -64,  -62,  -65,  -66,  -70,  -72,  -76, 
    -81,  -80,  -84,  -90,  -95, -102, -110, -999, 
    -999, -999, -999, -999, -999, -999, -999, -999, 
    -999, -999, -999, -999, -999, -999, -999, -999, 
    -999, -999, -999, -999, -999, -999, -999, -999}, 
   {-999, -999, -999, -107, -103,  -97,  -92,  -88, 
    -83,  -79,  -74,  -70,  -66,  -59,  -53,  -58, 
    -62,  -55,  -54,  -54,  -54,  -58,  -61,  -62, 
    -72,  -70,  -72,  -75,  -78,  -80,  -81,  -80, 
    -83,  -83,  -88,  -93, -100, -107, -115, -999, 
    -999, -999, -999, -999, -999, -999, -999, -999, 
    -999, -999, -999, -999, -999, -999, -999, -999}, 
   {-999, -999, -999, -105, -100,  -95,  -90,  -85, 
    -80,  -75,  -70,  -66,  -62,  -56,  -48,  -44, 
    -48,  -46,  -46,  -43,  -46,  -48,  -48,  -51, 
    -58,  -58,  -59,  -60,  -62,  -62,  -61,  -61, 
    -65,  -64,  -65,  -68,  -70,  -74,  -75,  -78, 
    -81,  -86,  -95, -110, -999, -999, -999, -999, 
    -999, -999, -999, -999, -999, -999, -999, -999}, 
   {-999,  -999, -105, -100,  -95,  -90,  -85,  -80, 
    -75,  -70,  -65,  -61,  -55,  -49,  -39,  -33, 
    -40,  -35,  -32,  -38,  -40,  -33,  -35,  -37, 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -