summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMonty <xiphmont@xiph.org>2000-03-27 03:10:54 +0000
committerMonty <xiphmont@xiph.org>2000-03-27 03:10:54 +0000
commit6c4aaf91ce1beb3a676461d38300d89434adcb88 (patch)
treedb5b72dc01e4cb7fa16c16789351070e4b434171
parentd18e1574eda8f805794be099cc4fd514d3c5bbc4 (diff)
downloadlibvorbis-git-6c4aaf91ce1beb3a676461d38300d89434adcb88.tar.gz
masking curves for new psychoacoustics
svn path=/trunk/vorbis/; revision=280
-rw-r--r--lib/masking.h150
1 files changed, 150 insertions, 0 deletions
diff --git a/lib/masking.h b/lib/masking.h
new file mode 100644
index 00000000..dd9c67c0
--- /dev/null
+++ b/lib/masking.h
@@ -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
+
+