masking curves for new psychoacoustics
authorMonty <xiphmont@xiph.org>
Mon, 27 Mar 2000 03:10:54 +0000 (03:10 +0000)
committerMonty <xiphmont@xiph.org>
Mon, 27 Mar 2000 03:10:54 +0000 (03:10 +0000)
svn path=/trunk/vorbis/; revision=280

lib/masking.h [new file with mode: 0644]

diff --git a/lib/masking.h b/lib/masking.h
new file mode 100644 (file)
index 0000000..dd9c67c
--- /dev/null
@@ -0,0 +1,150 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE.  *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY *
+ * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE.    *
+ * PLEASE READ THESE TERMS DISTRIBUTING.                            *
+ *                                                                  *
+ * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-2000             *
+ * by Monty <monty@xiph.org> and The XIPHOPHORUS Company            *
+ * http://www.xiph.org/                                             *
+ *                                                                  *
+ ********************************************************************
+
+ function: masking curve data for psychoacoustics
+ last mod: $Id: masking.h,v 1.1 2000/03/27 03:10:54 xiphmont Exp $
+
+ ********************************************************************/
+
+#ifndef _V_MASKING_H_
+#define _V_MASKING_H_
+
+double ATH_Bark_dB[]={  
+   70,   25,   15,    11,     9,     8,   7.5,    7,    7,    7,
+    6,    4,    2,     0,    -3,    -5,    -6,   -6, -4.5,  2.5,
+   11,   18,   21,    17,    25,    80,   120};
+
+/* The below masking curves are straight from the R. Ehmer
+   (J. Acoustical Society of America) papers ca 1958-59.  I modified
+   them slightly as Ehmer does not correct for the Absolute Threshold
+   of Hearing, and the low dB portions of the curves are thus highly
+   suspect. */
+
+/* Let's all do the Trek thing and just call them 'Ehmer curves' ;-)
+   Note these are octaves, not Bark scale. */
+
+#define EHMER_OFFSET 16
+#define EHMER_MAX 56
+
+double tone_250_40dB_SL[EHMER_MAX]={
+ -67, -61, -55, -49, -43, -37, -31, -25,  -19,-13, -7, -1,  4,  9, 15, 20,  
+  22,  23,  22,  19,  18,  18,  16,  13,    9,  7,  3,  1, -1, -3, -6, -8,
+ -10, -13, -16, -19, -21, -24, -28, -32,  -36,-40,-44,-48,-52,-56,-60,-65,  
+ -70, -75, -80, -85, -90, -95,-100,-105};
+double tone_250_60dB_SL[EHMER_MAX]={
+ -58, -50, -42, -36, -30, -23, -17, -11,   -5,  1,  7, 13, 19, 25, 30, 33,  
+  36,  39,  38,  37,  38,  39,  39,  40,   38, 36, 35, 34, 33, 31, 29, 28,
+  28,  28,  25,  20,  14,  10,   5,   0,   -5,-10,-15,-20,-25,-30,-35,-40,  
+ -45, -50, -55, -60, -65, -70, -75, -80};
+double tone_250_80dB_SL[EHMER_MAX]={
+ -45, -38, -31, -24, -17, -10,  -2,   4,   10, 17, 24, 30, 37, 41, 48, 49,  
+  50,  53,  54,  53,  53,  54,  55,  57,   57, 57, 58, 59, 60, 58, 57, 58,
+  59,  58,  57,  54,  52,  50,  49,  47,   46, 47, 46, 44, 43, 42, 41, 40,  
+  38,  32,  27,  22,  17,  11,   6,   0};
+
+double tone_500_40dB_SL[EHMER_MAX]={
+ -74, -68, -62, -56, -50, -44, -38, -32,  -26,-20,-14, -8, -2,  4, 10, 17,
+  23,  16,  12,   9,   6,   3,   0,  -3,   -7,-10,-13,-16,-20,-23,-26,-30,
+ -33, -36, -40, -43, -46, -50, -55, -60,  -63,-66,-70,-75,-80,-85,-90,-95,  
+-100,-105,-110,-115,-120,-125,-130,-135};
+double tone_500_60dB_SL[EHMER_MAX]={
+ -64, -58, -52, -46, -40, -36, -30, -24,  -18,-12, -6,  0,  6, 13, 20, 30,  
+  39,  34,  31,  29,  29,  27,  24,  21,   18, 16, 13,  8,  6,  3,  1, -1,
+  -5,  -2,  -5,  -8, -12, -15, -18, -22,  -25,-30,-35,-40,-45,-50,-55,-60,  
+ -65, -70, -75, -80, -85, -90, -95,-100};
+double tone_500_80dB_SL[EHMER_MAX]={
+ -70, -64, -58, -52, -46, -40, -34, -28,  -22,-16,-10,  0, 10, 20, 32, 43,  
+  53,  52,  52,  50,  49,  50,  52,  55,   55, 54, 51, 49, 46, 44, 44, 42,
+  38,  34,  32,  29,  29,  28,  25,  23,   20, 16, 10,  7,  4,  2, -1, -4,  
+  -7, -10, -15, -20, -25, -30, -35, -40};
+double tone_500_100dB_SL[EHMER_MAX]={
+ -56, -50, -44, -38, -32, -26, -20, -13,   -7,  2, 10, 19, 27, 35, 55, 56,  
+  62,  61,  60,  58,  57,  57,  59,  63,   65, 66, 62, 60, 57, 57, 58, 58,
+  57,  56,  56,  56,  57,  57,  56,  57,   57, 54, 47, 41, 37, 28, 21, 16,  
+  10,   3,  -3,  -8, -13, -18, -23, -28};
+
+double tone_1000_40dB_SL[EHMER_MAX]={
+-135,-125,-115,-105, -95, -85, -75,  -65, -55, -45, -35, -25, -15,  -5,   5,  15,
+  25,  20,  13,   8,   3,  -3,  -9,  -15, -20, -26, -31, -36, -42, -47, -52, -58,
+ -63, -69, -74, -79, -85, -90, -95, -101,-106,-111,-116,-122,-127,-132,-138,-143, 
+-148,-153,-159,-164,-169,-175,-180, -185};
+
+double tone_1000_60dB_SL[EHMER_MAX]={
+-120,-110,-100, -90, -80, -70, -60, -50,   -40,-30,-20,-10,  0,  10,  20,  30,  
+  39,  33,  24,  23,  21,  17,  13,   8,     3, -2, -8,-13,-18, -23, -28, -33,
+ -38, -43, -48, -53, -58, -63, -68, -73,   -78,-83,-88,-93,-98,-103,-108,-113,  
+-118,-123,-128,-133,-138,-143,-148,-153};
+double tone_1000_80dB_SL[EHMER_MAX]={
+-120,-110,-100, -90, -80, -70, -60, -50,   -40,-30,-20,-10,  0, 10, 24, 42,  
+  56,  55,  46,  41,  39,  37,  41,  46,    45, 41, 39, 35, 35, 34, 33, 31,
+  28,  22,  15,  10,   5,  -2, -10, -18,   -26,-34,-42,-50,-58,-66,-74,-82,  
+ -90, -95,-100,-105,-110,-115,-120,-125};
+double tone_1000_100dB_SL[EHMER_MAX]={
+-114,-104, -94, -84, -74, -64, -54, -44,   -34,-24,-14, -4,  6, 16, 33, 53,  
+  65,  65,  55,  49,  43,  40,  44,  54,    59, 58, 49, 43, 52, 57, 57, 58,
+  58,  54,  49,  47,  42,  39,  33,  28,    20, 15,  5,  0, -5,-15,-20,-25,  
+ -30, -35, -40, -45, -50, -55, -60, -65};
+
+double tone_2000_40dB_SL[EHMER_MAX]={
+-120,-110,-100, -90, -80, -70, -60, -50,   -40, -30, -21, -12, -3,   5,  12,  20,
+  25,  21,  15,   5,  -5, -15, -25, -35,   -45, -55, -65, -75, -85, -95,-104,-112,
+-120,-125,-130,-135,-140,-145,-150,-155,  -160,-165,-170,-175,-180,-185,-190,-195,
+-200,-205,-210,-215,-220,-225,-230,-235};
+double tone_2000_60dB_SL[EHMER_MAX]={
+-120,-110,-100, -90, -80, -70, -60, -50,   -40, -30, -21, -12,  -2,   8,  19,  32,
+  38,  34,  25,  17,  14,  13,  11,   7,     3,  -2,  -6, -10, -14, -20, -26, -32,
+ -40, -48, -56, -64, -72, -80, -88, -96,  -104,-112,-120,-128,-135,-142,-149,-156,
+-163,-170,-177,-184,-191,-198,-205,-212};
+double tone_2000_80dB_SL[EHMER_MAX]={
+-120,-110,-100, -90, -80, -70, -60, -50,   -40, -30, -21, -12,  -2,  13,  28,  41,
+  52,  51,  43,  35,  28,  29,  35,  37,    37,  35,  31,  28,  25,  22,  19,  15,
+  11,   8,   6,  2,   -6, -14, -22, -30,   -38, -44, -52, -60, -68, -76, -84, -90,
+ -95,-100,-105,-110,-115,-120,-125,-130};
+double tone_2000_100dB_SL[EHMER_MAX]={  
+-120,-110,-100, -90, -80, -70, -60, -50,   -40, -30, -21, -10,   6,  25,  42,  60,
+  67,  61,  53,  43,  35,  31,  34,  47,    58,  51,  43,  45,  54,  59,  59,  56,
+  54,  51,  40,  29,  20,  11,   2,  -8,   -17, -26, -35, -44, -53, -62, -71, -80,
+ -89, -98,-105,-110,-115,-120,-125,-130};
+
+double tone_4000_40dB_SL[EHMER_MAX]={
+-150,-140,-130,-120,-110,-100, -90, -80,   -70, -56, -43, -30, -17,  -5,   7,  15,
+  21,  13,   5,  -2, -10, -17, -24, -31,   -38, -45, -52, -59, -66, -73, -80, -87,
+ -94,-100,-105,-110,-115,-120,-125,-130,  -135,-140,-145,-150,-155,-160,-165,-170,
+-175,-180,-185,-190,-195,-200,-205,-210};
+double tone_4000_60dB_SL[EHMER_MAX]={
+-150,-140,-130,-120,-110,-100, -90, -80,   -70, -56, -43, -30, -17,  -5,  10,  27,
+  37,  32,  20,  16,  10,   5,  -5, -15,   -20, -25, -30, -35, -40, -45, -50, -55,
+ -60, -65, -70, -75, -80, -85, -90, -95,  -100,-105,-110,-115,-120,-125,-130,-135,
+-140,-145,-150,-155,-160,-165,-170,-175};
+double tone_4000_80dB_SL[EHMER_MAX]={
+-140,-130,-120,-110,-100, -90, -80, -70,   -60, -50, -40, -29, -12,   5,  19,  37,
+  49,  48,  35,  33,  36,  36,  36,  31,    27,  17,   8,   0,  -8, -16, -24, -32,
+ -40, -48, -56, -64, -70, -75, -80, -85,   -90, -95,-100,-105,-110,-115,-120,-125,
+-130,-135,-140,-145,-150,-155,-160,-165};
+double tone_4000_100dB_SL[EHMER_MAX]={
+ -20, -12,  -8,  -4,   0,   4,   8,  11,    15,  22,  26,  28,  32,  36,  43,  54,
+  61,  60,  45,  41,  48,  49,  40,  26,    40,  40,  33,  29,  24,  19,  14,   9,
+   4,  -1,  -6, -11, -16, -21, -26, -31,   -36, -41, -46, -51, -56, -61, -66, -71,
+ -76, -81, -86, -91, -96,-101,-106,-111};
+
+double tone_8000_100dB_SL[EHMER_MAX]={
+ -18, -12,  -7,  -3,   0,   2,   6,   9,    12,  19,  22,  21,  19,  21,  40,  40,
+  69,  55,  
+      /* educated guessing from here on out */
+            35,  31,  38,  39,  30,  16,    30,  30,  23,  19,  14,   9,   4,  -1,
+  -6, -11, -16, -21, -26, -31, -36, -41,   -46, -51, -56, -61, -66, -71, -76, -81,
+ -86, -91, -96,-101,-106,-111,-116,-121};
+
+#endif
+
+