资源简介

Microsoft Audio Watermarking Tool 微软的音频水印嵌入和检测的源码,非常好,值得参考。

资源截图

代码片段和文件信息

/*

(c) Microsoft Corporation. All rights reserved. 

*/
//
// MISC.C - Watermarking of audio - miscellaneous functions
//
// (c) 1999 Microsoft Corp.
//
// History:
//
// 14/Jun/99 - Darko Kirovski first version based on his Matlab code
// 29/Jun/99 - Rico Malvar using analog warping function
// 30/Jun/99 - Rico Malvar miscellaneous codes to read/write key/ID bits
// 02/Jul/99 - Darko & Rico - new width control for nonlinear subbands

#include “wmark.h“

// ------------------------------------------------------------
// Routine to warp the frequency scale to support frequency scale changes

float warpfreq(float x float a)
{
return((exp(a*x) - 1) / (exp(a) - 1) );
}

// ------------------------------------------------------------
// Routine to generate subband limits

void gensubindex(SSBANDS *ssbands long fs float scalefactor) {
int bit;
int fc;
float freq x y a;

// First define bits for SS subbands on which the chips carrying
// the CCI bits will be inserted
//
// The band from FWCCIMIN to FWMAX is divided in CHIPSPERBLOCK subbands
//
//  FWCCIMIN                                     FWMAX
//     |---------|---------|--- . . . ---|---------|
//          :         :                       :
//        bit 0     bit 1             bit CHIPSPERBLOCK-1
//
// The bands are not uniformly distributed. The parameter SPEEDUP controls
// the subband with distortion: higgher subbands should be wider as we
// increase speedup.
// The main trick: figure out how much the last subband width needs to
// be amplified; that‘s the parameter g

    // first determine a from max gradient of warp
a = 1.7 * log(1 + SPEEDUP * CHIPSPERBLOCK) + 0.5 * (SPEEDUP * CHIPSPERBLOCK); 
fc = (int) ((FWMIN * scalefactor * 2.0 / fs) * (float) NFREQ);
bit = 0;
    // start at index corresponding to FWCCIMIN
ssbands->fstart[0] = fc; 
while (bit < CHIPSPERBLOCK) {
x = (bit + 1.0) / CHIPSPERBLOCK;
y = warpfreq(x a);
        // analog frequency in Hz
freq = FWMIN + (FWMAX-FWMIN) * y; 
        // convert to index
fc = (int) (freq * scalefactor * (2.0 / fs) * NFREQ); 
ssbands->fend[bit] = fc;
ssbands->fmiddle[bit] = (ssbands->fstart[bit] + fc) / 2;
// ??? ssbands->width[bit] = ssbands->fend[bit] - ssbands->fstart[bit] + 1;
bit++;
if (bit == CHIPSPERBLOCK) break;
ssbands->fstart[bit] = fc + 1;
}
#ifdef PRINT_SUBBAND_INDEX
    {
FILE *f;
int i;
f = fopen(“subband_index.m“ “w“);
fprintf(f “sbi=[\n“);
for (bit = 0; bit < CHIPSPERBLOCK; bit++) {
for (i = 0; i < SRFREQ; i++) 
fprintf(f “%d %d %d\t“ ssbands->fstart[bit] ssbands->fmiddle[bit] ssbands->fend[bit]);
fprintf(f “\n“);
}
fprintf(f “];\n“);
fclose(f);
}
#endif
}

// ------------------------------------------------------------
// Routines to convert seconds to MM:SS:MSMS string

static char tmpstr[200];

char *ftimestr(float secs)
{
int i;
i

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-08-22 08:59  audiowatermarkingtool\
     目录           0  2005-08-08 10:38  audiowatermarkingtool\build\
     目录           0  2005-08-08 10:27  audiowatermarkingtool\build\detect2003\
     目录           0  2005-08-08 10:35  audiowatermarkingtool\build\detect2003\Debug\
     文件        3939  2005-08-08 10:38  audiowatermarkingtool\build\detect2003\detect2003.vcproj
     目录           0  2005-08-08 10:39  audiowatermarkingtool\build\detect2003\Release\
     文件      106496  2005-08-08 10:38  audiowatermarkingtool\build\detect2003.exe
     目录           0  2005-08-08 10:11  audiowatermarkingtool\build\lib\
     文件       40842  2005-08-05 12:32  audiowatermarkingtool\build\lib\internal2003.lib
     目录           0  2005-08-08 10:36  audiowatermarkingtool\build\watermark2003\
     目录           0  2005-08-08 10:35  audiowatermarkingtool\build\watermark2003\Debug\
     目录           0  2005-08-08 10:39  audiowatermarkingtool\build\watermark2003\Release\
     文件        3949  2005-08-08 10:37  audiowatermarkingtool\build\watermark2003\watermark2003.vcproj
     文件       94208  2005-08-08 10:38  audiowatermarkingtool\build\watermark2003.exe
     文件      101376  2005-08-08 10:39  audiowatermarkingtool\build\watermark2003.ncb
     文件        1445  2005-08-08 10:29  audiowatermarkingtool\build\watermark2003.sln
     文件       14336  2005-08-08 10:39  audiowatermarkingtool\build\watermark2003.suo
     文件        6009  2005-08-05 11:13  audiowatermarkingtool\license.txt
     文件         764  2005-08-05 11:20  audiowatermarkingtool\readme.txt
     目录           0  2005-08-08 10:40  audiowatermarkingtool\src\
     文件        1256  2005-08-05 11:09  audiowatermarkingtool\src\fxform.h
     文件         640  2005-08-05 11:09  audiowatermarkingtool\src\hthres.h
     文件        7096  2005-08-05 11:09  audiowatermarkingtool\src\misc.c
     文件       16433  2005-08-05 11:09  audiowatermarkingtool\src\waveio.h
     文件       11703  2005-08-05 11:09  audiowatermarkingtool\src\wmadd.c
     文件        6618  2005-08-05 11:09  audiowatermarkingtool\src\wmark.c
     文件        6579  2005-08-05 11:09  audiowatermarkingtool\src\wmark.h
     文件       40451  2005-08-05 11:09  audiowatermarkingtool\src\wmtest.c

评论

共有 条评论