我已知道怎样绘制wave文件(*.wav)的波形图,但对于大文件,如果把每一个数据值都绘制出来则要很长时间。
但是CoolEdit,SoundForge这一类声音编辑软件把每一个数据值都绘制出来了,而且它能在很短时间内绘制出来?为什么?
请各位知道的大侠解释,谢谢!
但是CoolEdit,SoundForge这一类声音编辑软件把每一个数据值都绘制出来了,而且它能在很短时间内绘制出来?为什么?
请各位知道的大侠解释,谢谢!
解决方案 »
- 支持MFC的控制台程序,干嘛要声明一个CWinApp theApp对象?
- CSerialPort封装DLL问题。。
- 希望前辈给我的毕业设计一点建议
- 高手帮忙!关于CFile写文件问题
- MFC 中, ListBox 与 ComboBox 中的文本如何实现水平居中与垂直居中???———(顶者有分,解决问题者另送100分)
- BMP 位图中的 BITMAPINFOHEADER 结构撞鬼了,紧急求助!
- 关于CMSFlexGrid表格闪烁问题
- StretchBlt 如何用
- 鼠标问题???难????
- 注册表获取程序安装路径的问题
- 请问白平衡 算法?
- 谁知道并口起始地址(如0x378)存放在BIOS的位置(f****)?
PolyLine用过,双缓冲也用过,DirectDraw也用过,当wave文件大到180M,我绘制这个波形需137秒,然而CoolEdit,SoundForge这一类声音编辑软件只要十几二十秒,而且它们把每一个数据值都绘制出来了,
------dirdirdir3(风) :优化一下代码,特别是在循环里面的。会差非常多的。
我对在循环里面优化代码没有经验,请问是不是用汇编语言?还是采用其他方式,能否给些例子?谢谢!
尤其在关键技术上,如果让你随便问问就搞定,那Cooledit的老板该哭了CoolEdit核心部分完全可能是使用汇编编写的,甚至可能利用了MMX或者SSE指令集。像X86这种CISC架构,有些指令不常见但是用得恰到好处会有意想不到的效果。
先在CoolEdit中把波形中某一个点的分贝值拖到最大,保存你修改过的这个文件,你再次用该软件打开这个文件,这时你可以再次看你刚才放大了分贝值的那个波峰,位置一点都没改变,这说明它自身并没有只取部分来画,也不是缩放时画的。
我在用另一音频编辑软件SoundForge打开这个文件,这时你看到的与CoolEdit中一模一样,你仍能看到你刚才放大的那个点波峰,位置也没变,这两个软件不是一个人写得吧?