Substantially increase the number of bits given to noise encoding in
authorMonty <xiphmont@xiph.org>
Mon, 1 Jul 2002 21:56:47 +0000 (21:56 +0000)
committerMonty <xiphmont@xiph.org>
Mon, 1 Jul 2002 21:56:47 +0000 (21:56 +0000)
impulse blocks.  All you Aphex Twin freaks can quiet down now :-)

svn path=/trunk/vorbis/; revision=3466

examples/encoder_example.c
lib/bitrate.c
lib/modes/psych_44.h
lib/vorbisenc.c

index 05574c8..d9937a3 100644 (file)
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: simple example encoder
- last mod: $Id: encoder_example.c,v 1.43 2002/07/01 11:20:09 xiphmont Exp $
+ last mod: $Id: encoder_example.c,v 1.44 2002/07/01 21:56:46 xiphmont Exp $
 
  ********************************************************************/
 
@@ -97,8 +97,8 @@ int main(){
   /* (quality mode .4: 44kHz stereo coupled, roughly 128kbps VBR) */
   vorbis_info_init(&vi);
   
-  vorbis_encode_init(&vi,2,44100,-1,80000,-1);
-  //vorbis_encode_init_vbr(&vi,2,44100,-.1);
+  vorbis_encode_init(&vi,2,44100,-1,320000,-1);
+  //vorbis_encode_init_vbr(&vi,2,44100,.3);
 
   //vorbis_encode_setup_managed(&vi,2,44100,-1,128000,-1);
   //vorbis_encode_ctl(&vi,OV_ECTL_RATEMANAGE_AVG,NULL);
index 05be946..cb1b19b 100644 (file)
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: bitrate tracking and management
- last mod: $Id: bitrate.c,v 1.15 2002/07/01 11:20:10 xiphmont Exp $
+ last mod: $Id: bitrate.c,v 1.16 2002/07/01 21:56:46 xiphmont Exp $
 
  ********************************************************************/
 
index c387b79..f4313e8 100644 (file)
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: key psychoacoustic settings for 44.1/48kHz
- last mod: $Id: psych_44.h,v 1.20 2002/07/01 11:20:19 xiphmont Exp $
+ last mod: $Id: psych_44.h,v 1.21 2002/07/01 21:56:47 xiphmont Exp $
 
  ********************************************************************/
 
@@ -256,6 +256,7 @@ static noise3 _psy_noisebias_long[11]={
     {-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40}}},
 };
 
+#if 0
 static noise3 _psy_noisebias_impulse[11]={
   /*  63     125     250     500      1k      2k      4k      8k     16k*/
   /* 0 */
@@ -303,6 +304,56 @@ static noise3 _psy_noisebias_impulse[11]={
     {-40,-40,-40,-40,-40,-40,-40,-40,-35,-30,-30,-30,-30,-30,-30,-30,-20},
     {-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40}}},
 };
+#endif
+
+static noise3 _psy_noisebias_impulse[11]={
+  /*  63     125     250     500      1k      2k      4k      8k     16k*/
+  /* 0 */
+  {{{-10,-10,-10,-10,-10,-4,   0,  0,  4,  8,  8,  8,  8, 14, 20, 20, 30},
+    {-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -2,  2,  2,  2,  2,  3,  6},
+    {-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, -6, -4, -2}}},
+  /* 1 */
+  {{{-12,-12,-12,-12,-12, -8, -6, -4,  0,  4,  4,  4,  4, 10, 12, 14, 20},
+    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -4, -4, -2, -2, -2, -2,  2},
+    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -8,-10,-10, -8, -8, -8, -6, -4}}},
+  /* 2 */
+  {{{-14,-14,-14,-14,-14,-10, -8, -6, -2,  2,  2,  2,  2,  8, 10, 10, 16},
+    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -6, -6, -4, -4, -4, -2,  0},
+    {-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10,-10,-10, -8, -4}}},
+  /* 3 */
+  {{{-14,-14,-14,-14,-14,-10, -8, -6, -2,  2,  2,  2,  2,  6,  8,  8, 14},
+    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -6, -6, -4, -4, -4, -2,  0},
+    {-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10,-10,-10, -8, -4}}},
+  /* 4 */
+  {{{-16,-16,-16,-16,-16,-12,-10, -6, -2,  0,  0,  0,  0,  4,  6,  6, 12},
+    {-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -6, -6, -4, -4, -4, -2,  0},
+    {-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10,-10,-10, -8, -4}}},
+  /* 5 */
+  {{{-20,-20,-20,-20,-20,-18,-14,-10, -4,  0,  0,  0,  0,  4,  4,  6, 11},
+    {-32,-32,-32,-32,-28,-24,-22,-16,-10, -6, -8, -8, -6, -6, -6, -4, -2},
+    {-34,-34,-34,-34,-30,-26,-24,-18,-14,-12,-12,-12,-12,-12,-10, -9, -5}}},
+  /* 6 */
+  {{{-20,-20,-20,-20,-20,-18,-14,-10, -4,  0,  0,  0,  0,  4,  4,  6, 11},
+    {-34,-34,-34,-34,-30,-30,-24,-20,-12,-12,-14,-14,-10, -9, -8, -6, -4},
+    {-34,-34,-34,-34,-34,-30,-26,-20,-16,-15,-15,-15,-15,-15,-13,-12, -8}}},
+  /* 7 */
+  {{{-22,-22,-22,-22,-22,-20,-14,-10, -6,  0,  0,  0,  0,  4,  4,  6, 11},
+    {-34,-34,-34,-34,-30,-30,-24,-20,-14,-14,-16,-16,-14,-12,-10,-10, -8},
+    {-34,-34,-34,-34,-32,-32,-30,-24,-20,-19,-19,-19,-19,-19,-17,-16,-12}}},
+  /* 8 */
+  {{{-24,-24,-24,-24,-24,-22,-14,-10, -6, -1, -1, -1, -1,  3,  3,  5, 10},
+    {-34,-34,-34,-34,-30,-30,-30,-24,-20,-20,-20,-20,-20,-18,-16,-16,-14},
+    {-36,-36,-36,-36,-36,-34,-28,-24,-24,-24,-24,-24,-24,-24,-24,-20,-16}}},
+  /* 9 */
+  {{{-28,-28,-28,-28,-28,-28,-28,-20,-14, -8, -4, -4, -4, -4, -4, -2,  2},
+    {-36,-36,-36,-36,-34,-32,-32,-30,-26,-26,-26,-26,-26,-22,-20,-20,-16},
+    {-40,-40,-40,-40,-40,-40,-40,-32,-30,-30,-30,-30,-30,-30,-30,-24,-20}}},
+  /* 10 */
+  {{{-30,-30,-30,-30,-30,-26,-24,-24,-24,-20,-16,-16,-16,-16,-16,-14,-12},
+    {-40,-40,-40,-40,-40,-40,-40,-40,-35,-30,-30,-30,-30,-30,-30,-30,-20},
+    {-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40}}},
+};
+
 
 static noise3 _psy_noisebias_padding[11]={
   /*  63     125     250     500      1k       2k      4k      8k     16k*/
@@ -443,23 +494,23 @@ static adj_stereo _psy_stereo_modes_44[11]={
    {  6,  6,  6,  8,  8,  8,  8,  8,  8,  8, 10, 10, 10, 10, 10},
    { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}},
   /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14         5  */
-  {{  1,  1,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
-   {  3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  2,  1,  1,  0,  0},
+  {{  2,  2,  2,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+   {  3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0},
    {  6,  6,  8,  8,  8,  8, 10, 10, 10, 10, 10, 10, 10, 10, 10},
    { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}},
   /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14         6  */
   {{  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
-   {  3,  3,  3,  2,  2,  2,  1,  1,  1,  1,  1,  0,  0,  0,  0},
+   {  3,  3,  3,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0},
    {  8,  8,  8,  8, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
    { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}},
   /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14         7  */
   {{  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
-   {  2,  2,  2,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+   {  3,  3,  3,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
    {  8,  8,  8,  8, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
    { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}},
   /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14         8  */
   {{  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
-   {  2,  2,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+   {  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
    {  8, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
    { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}},
   /*  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14         9  */
@@ -505,10 +556,10 @@ static double _psy_lowpass_44[11]={
 /* noise normalization **********/
 
 static int _noise_start_short_44[10]={
-  16,16,16,16,32,64,9999,9999,9999,9999
+  16,16,16,16,32,32,9999,9999,9999,9999
 };
 static int _noise_start_long_44[10]={
-  128,128,128,256,512,9999,9999,9999,9999,9999
+  128,128,128,256,512,512,9999,9999,9999,9999
 };
 static int _noise_part_short_44[10]={
   8,8,8,8,8,8,8,8,8,8
@@ -517,10 +568,10 @@ static int _noise_part_long_44[10]={
   32,32,32,32,32,32,32,32,32,32
 };
 static double _noise_thresh_44[10]={
-  .2,.2,.3,.4,.5,.5,.5,.5,.5,.5,
+  .2,.2,.3,.4,.5,.5,9999.,9999.,9999.,9999.,
 };
-static double _noise_thresh_44_2[10]={
-  .5,.5,.5,.5,.5,.5,.5,.5,.5,.5,
+static double _noise_thresh_44_2[2]={
+  .5,.5,
 };
 
 
index bdd4988..0397352 100644 (file)
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: simple programmatic interface for encoder mode setup
- last mod: $Id: vorbisenc.c,v 1.44 2002/07/01 11:20:11 xiphmont Exp $
+ last mod: $Id: vorbisenc.c,v 1.45 2002/07/01 21:56:46 xiphmont Exp $
 
  ********************************************************************/
 
@@ -760,7 +760,7 @@ int vorbis_encode_setup_init(vorbis_info *vi){
                                     setup->psy_noise_dBsuppress,
                                     setup->psy_noise_bias_impulse,
                                     setup->psy_noiseguards,
-                                    hi->impulse_noisetune);
+                                    (i0==0?hi->impulse_noisetune:0.));
   ret|=vorbis_encode_noisebias_setup(vi,hi->block[1].noise_bias_setting,1,
                                     setup->psy_noise_dBsuppress,
                                     setup->psy_noise_bias_padding,