草庐IT

即时通讯音视频开发之音频编解码技术的学习

weikeyuncn 2023-12-11 原文

总是有人问我研究音频编解码要看什么书,其实这是一个很难回答的问题,原因有很多:

    做工程首先一个问题就是和课本学习不同,不是看书能解决的。
    音频编解码技术在国内研究的人很少,包括总体的音频技术国外也研究不多。(从中国的潜艇噪声技术一直解决不好就能看出一二)。
    音频编解码技术是一种应用,而一般的书籍都是讲理论基础。


只看理论书籍会和应用脱离太多,没有实践会忘记。我当初看书也是从工程入手,就是在实际工作中和个人兴趣中看了大量的标准,然后对不懂的地方找论文,再找书籍补知识,这是典型的逆向学习。通常研究生是“课本->看论文->做工程”这样一个学习方法和流程。

 

我们可以按照什么样的思路去找书籍或论文呢?

音频编解码技术是一种比较复杂的应用,而普通的书籍是一种理论书籍,尤其是在中国。音频编解码技术和一般的音频技术不同,比如AEC,HRTF,后者分别是语音和音频的应用技术,应该说是一种具体的应用技术,相对来说查资料还是容易有的放矢。

具体来说,其实音频编解码技术也是一种具体的应用技术,但是可能系统相对复杂,目的相对基础。它是信源编解码技术的一个分支,目的就是压缩数据。

那么音频编解码技术包括哪些方面呢?既然他是一种信源编解码器技术(Source Coding Technology)那么信源编解码技术的书籍都可以看,当做是理论基础学习。

另外其实我把音频编解码技术分为5大技术,简称为:EQTPM。E-熵编码、Q-量化编码、T-变换编码、P-预测编码、M-音频建模(感知建模,BCC建模,正弦建模等)。相对的,学习时我们可以按照这些技术进行相关书籍的查阅和学习。即时通讯聊天软件app开发可以加蔚可云的v:weikeyun24咨询

 

因为国内讲宽带音频编解码的书籍很少,所以可以看些语音编解码的书籍,里面也有讲EQTP技术。例如:《语音处理技术》,《语音编码》,《低码率音频编码》,《数字语音编码原理》,《变速率语音编码》《低速率语音编码》《数字语音编码》《数据压缩》。

《JPEG2000 图像压缩基础》:我认为这本书讲的还是不错的,翻译的也不错,很多基本原理讲的比较透彻。

《信息论与编码》,《信号与系统》,高数这类我就不但列出来了,但是也要常番。

例如我认为很经典的ANDREAS SPANIAS的《Audio Signal Processing and Coding 》。以及他的63页的论文,《Perceptual Coding of Digital Audio》。

其他可看的书籍包括:

    MP3之父——K. Brandenburg的:
    《Applications of Digital Signal Processing to Audio and Acoustics》
    《A Digital Signal Processing Primer, with Applications to Digital Audio and Computer Music》
    《Auditory Perception and the MPEG Audio Standard》
    《Foundation and Evolution of Standardized Coders (Wiley,2003)(ISBN 0471373125)(578s)》
    汉堡联邦国防军大学Udo Zolzer教授的:
    《Digital Audio Signal Processing》
    《High-Fidelity Multichannel Audio Coding》
    《Speech Coding Algorithms》

我强烈推荐把SPANIAS的书读一下。至少把SPANIAS的那个论文仔细看一下。这样会对你理解音频编码有很大的帮助。但是里面会将很多关于耳朵的生理词语,要拿着字典慢慢翻。这个论文我是烦烂了的,使我受益匪浅。

后面的书籍我还没有系统看过,但都有PDF版本,我也是偶尔翻一下。因为这些经典书籍你不花大时间理解,会造成假象是乍看起来都讲得类似,但实际理解起来发现是对不同细节的阐述。

专项技术书籍:

    如《自适应信号处理》,因为音频编码也好其他音频技术也好,自适应技术是经常使用的。
    例如:无损编码的Wavpack,MPEG4 ALS,都使用了自适应技术。
    滤波器设计的相关书籍。
    《多抽样率数字信号处理理论及其应用》:讲解Transform技术。
    HE-AAC和ATRAC3,使用的QMF,
    MP3 使用的PQF
    AAC,MP3使用的MDCT
    AC3使用的TDAC(MDCT)
    WMA和G722.1的(MLT)


都是为什么,选择这些变换工具。有什么区别。如果你能看看Vaidyananthan PP的书,会更有帮助。

有关即时通讯音视频开发之音频编解码技术的学习的更多相关文章

  1. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  2. ruby - 即时确定方法的可见性 - 2

    我正在编写一个方法,它将在一个类中定义一个实例方法;类似于attr_accessor:classFoocustom_method(:foo)end我通过将custom_method函数添加到Module模块并使用define_method定义方法来实现它,效果很好。但我无法弄清楚如何考虑类(class)的可见性属性。例如,在下面的类中classFoocustom_method(:foo)privatecustom_method(:bar)end第一个生成的方法(foo)必须是公共(public)的,第二个(bar)必须是私有(private)的。我怎么做?或者,如何找到调用我的cust

  3. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  4. ruby - 是否可以覆盖 gemfile 进行本地开发? - 2

    我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI

  5. ruby - 在 Windows 机器上使用 Ruby 进行开发是否会适得其反? - 2

    这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby​​-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub

  6. ruby-on-rails - 在 Rails 开发环境中为 .ogv 文件设置 Mime 类型 - 2

    我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain

  7. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  8. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  9. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  10. CAN协议的学习与理解 - 2

    最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总

随机推荐