diff options
author | Monty <xiphmont@xiph.org> | 2000-03-27 03:10:54 +0000 |
---|---|---|
committer | Monty <xiphmont@xiph.org> | 2000-03-27 03:10:54 +0000 |
commit | 6c4aaf91ce1beb3a676461d38300d89434adcb88 (patch) | |
tree | db5b72dc01e4cb7fa16c16789351070e4b434171 | |
parent | d18e1574eda8f805794be099cc4fd514d3c5bbc4 (diff) | |
download | libvorbis-git-6c4aaf91ce1beb3a676461d38300d89434adcb88.tar.gz |
masking curves for new psychoacoustics
svn path=/trunk/vorbis/; revision=280
-rw-r--r-- | lib/masking.h | 150 |
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 + + |