- 博客(119)
- 资源 (11)
- 收藏
- 关注
原创 音频进阶学习二十五——脉冲响应不变法实现低通滤波器
上一篇文章中,我们介绍了滤波器的设计流程,并且提到了从模拟滤波器传递函数到数字滤波器传递函数的两种转变方法:脉冲响应不变法、双线性转换法。本篇文章将使用脉冲响应不变法设计出一个低通滤波器。在文章的开始,将会对于脉冲响应不变法原理、频域、幅频响应做一个深入解析。然后根据给定的指标,通过巴特沃斯滤波器得到数字滤波器的传递函数,并且在计算机中进行低通滤波的验证。|版本声明:山河君,未经博主允许,禁止转载保持模拟系统的冲激响应不变,而离散化后的数字滤波器具有与原模拟滤波器相同的冲激响应。即ha[t]h_a[t]ha
2025-03-31 10:01:54
823
1
原创 音频进阶学习二十四——IIR滤波器设计方法
本章内容会先介绍滤波器的指标。设计一个IIR滤波器需要考虑到它的通带、阻带和过渡带,以及它的应用场景。随后再介绍设计IIR滤波器的方法和流程。其中在设计数字滤波器时,需要考虑它的通带截止频率和阻带截止频率。而数字滤波器的设计方法时是依靠逼近模拟滤波器的方式实现,所以本文中会介绍三种常见的模拟滤波器,通过这三种模拟滤波器可以设计出在计算机中应用的数字滤波器。版本声明:山河君,未经博主允许,禁止转载本文中给出了滤波器设计时的指标,并且根据逼近模拟滤波器的方法设计数字滤波器的过程。
2025-03-31 10:00:01
1156
1
原创 音频进阶学习二十三——频谱泄露、加窗以及栅栏效应
前面已经介绍过如何在数字系统中如何进行傅里叶变换,总的来说是对于一个离散无限长的序列进行截断的DTFT再进行频域采样获得DFT,或者是对于DFS取其中一个周期,然后再进行时间抽取或者频率抽取方式最终得到了FFT。本章内容是对于无限长非周期序列进行DFT的过程中,如何进行截断,以及时域截断带来的频谱泄露是如何产生的,同时对于DTFT频域采样会有什么影响,并且如何解决频谱泄露做一个深入介绍。版本声明:山河君,未经博主允许,禁止转载我们知道在数字系统中,处理的是有限时长信号,而不能处理无限时长信号。
2025-03-24 10:09:59
538
1
原创 音频进阶学习二十二——FFT(DIF-FFT以及实现代码)
上一篇文章中,我们介绍了FFT——快速傅里叶变换的一种实现方式:DIT-FFT按照时间抽取减少运算实现。本篇文章中将会介绍另外一种实现方式:DIF-FFT按照频率抽取的方式进行实现。并且值得注意的是,DIF-FFT的应用场景多数在于硬件上,对于两种计算方式实际上复杂度是一样的。本文中将会对于DIF-FFT的算法推导,以及两种算法的区别做个深入解释。并且同样会使用C++进行实现。版本声明:山河君,未经博主允许,禁止转载对比项DIT-FFT(时间抽取)DIF-FFT(频率抽取)计算顺序。
2025-03-24 10:09:16
299
1
原创 音频进阶学习二十一——FFT(DIT-FFT以及实现代码)
上一篇文章中,对于DFT进行了介绍,而FFT是基于DFT的一种快速算法,也是在计算机中使用的算法。而实现FFT会有两种方式,一种叫做DIT-FFT,是基于时间抽取进行实现的。另一种叫做DIF-FFT,是基于频率抽取进行实现的。本篇文章将主要介绍DIT-FFT,对它的实现思想做一个深入的解释。并且,在最后将使用C++的方式进行实现。|版本声明:山河君,未经博主允许,禁止转载在上一篇音频进阶学习二十——DFT离散傅里叶变换文章中对于DFT我们知道它的表达式是:X[k]=∑n=0N−1ej(−2πknN)x[n
2025-03-18 13:45:33
754
1
原创 音频进阶学习二十——DFT离散傅里叶变换
在之前的文章中,我们介绍了对于系统频域上的分析,主要集中在傅里叶变换和Z变换后对于频率响应的分析,包括幅频响应,相位响应和群延迟,并介绍了LTI系统中的幅频响应相同系统、全通系统、最小相位系统等系统。在接下来的文章中,将会真正的学习在计算机中如何实现傅里叶变换,以及通过傅里叶变换实现之前所介绍的系统。本篇文章将会介绍新的傅里叶变换——DFT,即离散傅里叶变换的分析和解释,这是一种可以通过数字系统实现的傅里叶变换。然后对于DFT的性质将会做一个归纳。版本声明:山河君,未经博主允许,禁止转载很明显,
2025-03-18 13:44:55
697
1
原创 语音数字信号处理——GCC-PHAT计算回声时延
从结果上来看其实会偶尔存在误差,这是由于fft的精度问题,在实际使用中受到环境噪声影响可能误差会更大。其实这种方法最好结合频带分割,对于低频、中频、高频给予不同的权重,而这种权重可以根据能量分布来进行计算。本文中将不过多展示了。
2025-03-10 11:34:28
952
1
原创 音频进阶学习十九——逆系统(简单进行回声消除)
在上一篇音频进阶学习十八——幅频响应相同系统、全通系统、最小相位系统文章中,我们在最小相位系统中提到了逆系统:一个稳定因果的LTI系统,同时会有一个稳定因果的逆系统。本文中将会介绍逆系统的含义,通过对于零极点的分析,来对比逆系统和原系统的关联。最后,将会使用逆系统来对于给定的近端信号和参考信号来进行回声消除。版本声明:山河君,未经博主允许,禁止转载如果一个系统的输入是xnx[n]xn,经过系统HzH(z)Hz后系统的输出是yny[n]yn,那么将yny[n]yn通过系统。
2025-03-10 11:34:01
1185
1
原创 音频进阶学习十八——幅频响应相同系统、全通系统、最小相位系统
本篇文章将结合频率响应的特性,介绍三种基本的系统:幅频响应相同的系统、全通系统、最小相位系统。其中最重要的是需要了解到:当了解到这些后,在以后的文章中可以利用这些系统设计出一个逆系统,可以在出现回声时,通过逆系统恢复原始信号。|版本声明:山河君,未经博主允许,禁止转载先给结论:对于任何给定的系统,总会有另外一个系统的幅频响应与之相同。在了解幅频响应相同的系统之前,需要先了解一下共轭关系。在之前的对于DTFT公式的分析音频进阶学习九——离散时间傅里叶变换DTFT时,就提到了共轭的特性,复指数的共轭是指实部不变
2025-03-06 11:36:41
1217
1
原创 音频进阶学习十七——极点、零点与频率响应
上一篇文章中,介绍了系统的冲激响应可以写成差分方程表示的有理分式。而对于这个有理分式,分析了它的频率响应,其中包括了幅频响应,相频响应,以及群延迟的特性。本章内容将继续介绍该有理分式中的零点与极点对于频率响应的影响,在介绍过程中将结合实例和图像方便理解。同时会介绍如果存在多个极点与零点该如何分析。值得注意的是,分析过程中会用到以前文章中关于微积分的求导表格。版本声明:山河君,未经博主允许,禁止转载系统的零点会影响到幅频极大值和极小值的位置。系统的极点同样会影响到幅频极大值和极小值的位置。
2025-03-06 11:36:11
915
1
原创 音频进阶学习十五——LTI系统的卷积函数与系统的频率响应
本篇文章中将会用针对之前文章中的LTI系统、卷积函数、DTFT等相关内容,将其进行串联起来。主要介绍卷积函数与DTFT的关系以及频率响应,在这之中,将会对特征函数、稳态响应和瞬态响应,以及频率响应中的幅频响应和相位响应做深入的了解。版本声明:山河君,未经博主允许,禁止转载定义:LTI系统的特征函数指的是在某些特定的输入序列,系统的输出为输入序列和某个复常数的乘积。特征函数:该特定的输入函数为特征函数。特征值:该复常数为特征值。作用:它是用来表征LTI系统动态行为和响应特性的数学工具。Ye。
2025-02-26 10:25:14
804
1
原创 音频进阶学习十六——LTI系统的差分方程与系统的频率响应
本篇文章会先复习Z变换的有理分式,这是之前文章中提过的内容,这里会将差分方程和有理分式进行结合来看。主要是通过有理分式进行对于冲激响应的表达,以及根据导函数对于频率响应的介绍。本文会对Z变换的频率响应中的幅频响应、相频响应以及群延迟的表达式进行推导。|版本声明:山河君,未经博主允许,禁止转载在音频进阶学习十三——Z变换二(有理z变换、稳定性与反变换)中,其实已经对于差分方程进行有里分式的转换,对于差分方程:y[n]=∑k=1Naky[n−k]+∑i=0Mbix[n−i] y[n]= \sum_{k=1
2025-02-26 10:24:24
1361
1
原创 音频进阶学习十四——滤波器的种类和实现方式总
这一系列文章总的来说应该分为四个大的部分:第一部分包括数字信号与模拟信号,信号与系统。这一块主要介绍的是时域上的语音信号,以及分析信号使用到的工具卷积和和差分方程。第二部分是对于傅里叶变换、Z变换的介绍。这一块主要是如何将时域信号转换为频域表示。第三部分是对于频域上的分析,当然会专门对于数字信号,也就是应用到数字系统中频域的分析进行学习。第四部分也就是最终的目的,是学习如何设计一个数字滤波器。
2025-02-20 10:34:36
857
1
原创 语音数字信号处理——计算pcm分贝
在实际数字信号中,计算声音的dB往往计算的不是某一个具体的时间点上样本的dB,而是一段时间上所有样本的均值。dB20×log10RMSofthesignalReferenceRMS其中RMSofthesignalReferenceRMS叫做RMS,信号强度的一个度量RMSN1i1∑Nxi2。
2025-02-20 10:31:19
965
1
原创 语音数字信号处理——简单实现子带分割算法
子带分割算法(Subband Decomposition)通常用于信号处理,尤其是在音频、语音处理和图像处理等领域。其基本思想是将一个宽频带的信号分割成多个较窄的子带信号,从而使得在每个子带上进行独立处理变得更加有效。这种方法可以提高处理效率,降低复杂度,或优化信号的某些特征。版本声明:山河君,未经博主允许,禁止转载本文中简单实现了频带分割算法,当然频带分割实现不只这种方式,以后有时间也会多多分享。
2025-02-13 16:10:53
663
1
原创 音频进阶学习十三——Z变换二(有理z变换、稳定性与反变换)
在上一篇文章种音频进阶学习十二——Z变换一(Z变换、收敛域、性质与定理)中,我们介绍了Z变换的公式,并对公式进行了解释,以及Z变换中zzz的理解。同时介绍了什么是收敛域,以及Z变换的性质和定理。在对Z变换中zzz的理解解释时,曾说过傅里叶变换得到的是频域,而Z变换得到的是Z域。频域主要用于分析信号的频率特性和系统的频率响应,而Z域不仅仅可以帮助分析系统的频率响应,还能更好地处理系统的稳定性、收敛性等问题。对于收敛性上一篇文章中已经介绍过,本篇文章中将着重介绍Z变换如何分析系统的稳定性和如何求反变换。|版本声
2025-02-13 16:10:14
1182
1
原创 音频进阶学习十二——Z变换一(Z变换、收敛域、性质与定理)
在之前博客中,对于线性常系数差分方程求解中,我们提到了对于差分方程频域上求解有一种方法,叫做Z变换。本章博客中,将对于Z变换的作用,公式,收敛域,性质与定理做一个详细的介绍。当然,Z变换公式的推导一样是以复指数序列和共轭相关性为基础,如果对于此还不是很熟悉可以先看看之前的对于DTFT推导的博客。版本声明:山河君,未经博主允许,禁止转载收敛域 (Region of Convergence, ROC) 是指复平面中zzz的所有值(或区域),使得 Z 变换所涉及的无限级数绝对收敛。Xz∑n−∞。
2025-02-07 11:30:05
1343
原创 音频进阶学习十一——离散傅里叶级数DFS
按照傅里叶发展的历史,最先出现的傅里叶公式是傅里叶级数,只不过由于通用性以及核心理论先介绍了DTFT,它描述的是一个连续的频谱,描述了信号在整个频率范围内的频率成分。对于本章内容离散傅里叶级数DFS,它描述的是离散的频谱,频率成分在周期上重复,本文将深入解析DFS的公式,并对IDFS进行推导,最后会对DFS的性质结合图像进行介绍。版本声明:山河君,未经博主允许,禁止转载傅里叶级数简称为FS,是由法国数学家傅里叶为了进行热解析提出来的——周期信号表示为不同频率的正弦和余弦波的和。
2025-02-07 11:29:36
1255
1
原创 音频进阶学习十——DTFT的条件、性质与举例
上一篇文章中,对于DTFT和IDTFT做了详细的介绍,我们知道DTFT是讲信号从时域转换成了频域,根据复指数序列的正交性,我们解析了DTFT的原理,同时得到了相位和幅度的结果。本篇博客中,将结合实例,然后使用仿真软件matlab画出真正的频域图像。版本声明:山河君,未经博主允许,禁止转载本篇文章中对于DTFT的存在条件与性质做了深入介绍,其中,线性、移位、卷积、对称等性质是非常重要的,在滤波器设计中经常用到。同时,初步使用matlab进行了快速傅里叶变换,当然对于FFT会在以后的文章中做进一步介绍。
2024-12-30 09:43:21
775
1
原创 音频进阶学习九——离散时间傅里叶变换DTFT
按照傅里叶发展的历史,本应该先介绍傅里叶级数,但是由于DTFT更通用,且DTFT是属于核心理论,而DFS是DTFT的一种特列,所以该系列文章中先介绍DTFT,也就是离散时间傅里叶变换。版本声明:山河君,未经博主允许,禁止转载本篇文章中,我们对于DTFT做了深入的了解,附带着介绍了一些使用的数学知识,同时得到了IDTFT的公式。受到篇幅限制,本章只对DTFT公式进行了展示,并没有深入了解DTFT存在的条件和性质,那么在下一篇文章中会进行进一步介绍DTFT相关性质和条件。
2024-12-30 09:42:30
1424
1
原创 音频进阶学习八——傅里叶变换的介绍
之前的一系列文章中,我们介绍了信号的分类、系统、以及在时域上对于序列的分析工具卷积公式和差分方程。由于很多信号的处理从时域上并不能很好、快速的处理,并且基于分析我们得到一个结论,信号的波形可以分解为多个不同频率正弦波的组成,而这个分解的工具就是傅里叶变换。本章中,会先对傅里叶变换做一个总的介绍,同时,因为学习傅里叶变化需要一定的数学知识,所以本章内容会先介绍傅里叶变换,然后再介绍关于傅里叶变换公式中的数学知识欧拉公式和积分方程。版本声明:山河君,未经博主允许,禁止转载。
2024-12-16 15:11:48
1271
1
原创 音频进阶学习七——线性常系数差分方程的解
上篇文章中我们介绍了描述LTI系统的输入输出关系的工具——线性常系数差分方程,为了进一步理解该方程,本篇文章中将结合实例,通过实例来求线性常系数差分方程的解版本声明:山河君,未经博主允许,禁止转载本章内容中,我们对于线性常系数差分方程的解进行了求解推导,主要用到了递推法和经典法,其中递推法比较好理解,经典法需要一定的数学知识。值得注意的,线性常系数差分方程不一定是LTI系统,所以我们约定成俗的假设该系统是LTI系统,且具有初始状态的。下一篇文章中,我们就即将进入信号的频域分析中了。
2024-12-16 15:07:21
1021
1
原创 音频进阶学习五——求线性时不变系统卷积和的解
上一篇文章中介绍了LTI系统的含义,以及它的特征,同时对于LTI系统,使用单位冲激分解和单位冲激响应推导出了在时域上,分析LTI系统的重要工具——卷积和yn∑k−∞∞xkhn−kynk−∞∑∞xkhn−k也写作ynxn∗hnynxn∗hn那么这一篇中,将会有很多实例来利用卷积公式,进行实际的计算卷积公式的解版本声明:山河君,未经博主允许,禁止转载。
2024-12-10 15:33:22
781
1
原创 webrtc 3A移植以及实时处理
由于工作需要,硬件3A中的AEC效果实在太差,后面使用SpeexDSP的软3A,效果依旧不是很好,猜测是内部时延估计和时延补偿做的并不是很好,于是采用了webrtc的3A算法,这里记录一下3A移植过程。webrtc不愧是音视频领域的顶尖,值得我们学习的东西太多了。实际上demo里对于设备的读写,也是从webrtc中摘录出来的。
2024-11-26 14:05:36
1984
1
原创 ubuntu使用DeepSpeech进行语音识别(包含交叉编译)
由于工作需要语音识别的功能,环境是在linux arm版上,所以想先在ubuntu上跑起来看一看,就找了一下语音识别的开源框架,选中了很多框架可以看编译vosk那篇文章,现在一一试验一下。本篇博客将会在ubuntu上进行DeepSpeech编译使用,并且进行交叉编译。版本声明:山河君,未经博主允许,禁止转载目前已经尝试过vosk、PocketSphinx,有兴趣的话可以看看之前的文章,实际上还有两个没有记录出来,Snowboy和Julius,有兴趣的小伙伴可以一起探讨。
2024-11-07 17:49:36
2525
1
原创 ubuntu下使用pocketsphinx进行语音识别(包含交叉编译)
由于工作需要语音识别的功能,环境是在linux arm版上,所以想先在ubuntu上跑起来看一看,就找了一下语音识别的开源框架,选中了很多框架可以看编译vosk那篇文章,现在一一试验一下。网上对于pocketsphinx的介绍都比较老了,本篇博客将会在ubuntu上进行pocketsphinx编译使用,并且进行交叉编译。版本声明:山河君,未经博主允许,禁止转载PocketSphinx是一款卡内基梅隆大学的开源大型词汇、独立于说话人的连续语音识别引擎。它是一个离线语音识别系统。
2024-11-05 12:04:46
2041
6
原创 音频3A一——webrtc源码3A的启用方法和具体流程
在上一篇文章中,音频3A——初步了解音频3A,大致介绍了3A的作用、使用场景以及带来了哪些问题,同时列举了一些各个平台常用的3A开源库,再接下来的文章中,博主打算以webrtc(实在过于经典)来介绍具体的3A算法,所以需要读者对于webrtc拥有一定的了解。由于webrtc过于庞大,3A只是webrtc中的一个模块,并且博主在接下来的文章中会涉及到很多webrtc中具体的实现,所以在正式进入到webrtc 3A算法之前,先介绍webrtc中3A的具体使用流程,以便于有兴趣的读者可以对照具体代码进行查看。
2024-11-05 12:04:18
1786
4
原创 语音识别——使用Vosk进行语音识别
如何编译Vosk请参照之前的文章,ubuntu编译kaldi和voskVosk是语音识别开源框架,支持二十+种语言 - 中文,英语,印度英语,德语,法语,西班牙语,葡萄牙语,俄语,土耳其语,越南语,意大利语,荷兰人,加泰罗尼亚语,阿拉伯, 希腊语, 波斯语, 菲律宾语,乌克兰语, 哈萨克语, 瑞典语, 日语, 世界语, 印地语, 捷克语, 波兰语, 乌兹别克语, 韩国语, 塔吉克语。并且支持设备上离线语音识别 ,包括Raspberry Pi,Android,iOS等,API接口简单,并且有多种语言支持。
2024-10-21 16:46:44
7227
16
原创 音频进阶学习六——递归/非递归离散时间系统与差分方程
在之前的几篇文章中,我们介绍了系统的概念,以及系统的基本运算和分类,其中对于线性时不变系统做了很详细的介绍,并通过卷积和推导了线性时不变系统的数学公式,在此基础上,进一步介绍了系统的实际应用——滤波器的概念和分类,其中特别提到了FIR滤波器(有限长冲激响应的系统)和IIR滤波器(无限长冲激响应的系统)。FIR和IIR滤波器的特征中,不仅仅满足线性时不变还是一种记忆系统,即依赖过去的输出,或者还要依赖过去的输入,那么在这种情况下,如何对于这一类系统,如何求导他们的数学公式呢?请看接下来的文章。
2024-10-21 16:46:15
1039
1
原创 ubuntu编译kaldi和vosk
由于工作需要语音识别的功能,环境是在linux arm版上,所以想先在ubuntu上跑起来看一看,就找了一下语音识别的开源框架,选中了vosk这个开源库,但是依赖kaldi,网上对于kaldi介绍的很多,但是没有结合vosk的,这里记录一下。版本声明:山河君,未经博主允许,禁止转载。
2024-10-18 15:51:08
1690
9
原创 音频进阶学习四——线性时不变系统之卷积和
在之前的文章中,介绍了模拟信号和数字信号的定义和联系,以及模拟信号通过采样、量化和编码最终成为数字信号。而在实际的应用中,我们不能盲目的从信源获取到的信号都转化为模拟信号,也不能认为所有的模拟信号都可以通过A/D模数转换为数字信号,这是因为在实际处理中,有很多我们不需要的信号,这个时候就需要离散时间信号系统来进行过滤,而在这些系统中最重要的部分就是滤波器了。本文中会详细介绍滤波器的定义以及类型,同时会占用大篇幅的内容先简单介绍对于程序员更重要的数字滤波器IIR和FIR的推导。
2024-10-08 15:34:24
1425
1
原创 音频进阶学习三——离散时间信号与系统
前面博主介绍了信号中的连续时间信号和离散时间信号,数字信号也是离散时间信号的一种,而且讲诉了怎么获取数字信号也就是采样、量化的过程,而本篇博客是为了进一步介绍离散时间信号的特点,以及离散时间系统的意义,特别是线性时不变系统,了解这些之后,才能够对于信号做进一步的处理,例如:滤波、频谱分析、信号增强等等。版本声明:山河君,未经博主允许,禁止转载简单点说,离散时间系统就是对于离散信号执行某些规定的运算,执行者为某些算法或者元器件。xn→τynxn→τyn其中xnx(n)x。
2024-10-08 15:32:37
1186
1
原创 音频3A——初步了解音频3A
在日常的音视频通话过程中,说话的双端往往会面对比较复杂的场景,比如:环境存在较大的噪声,扬声器需要开启外放导致麦克风重新采集到,麦克风固定而人物需要走来走去等等的场景。而为了面对这些复杂的场景,音频通话不得不引入算法对于声音进行预处理,再进行发送给远端。而3A是对于音视预处理的三种算法的统称。AEC(Acoustic Echo Cancellation):声学回声消除AGC (Automatic Gain Control):自动增益控制。
2024-09-23 17:15:57
3697
1
原创 音频基础学习四——声音的能量与分贝
很多博客中经常会把声音的能量和分贝说成是一个东西,这种说法是错误的。在实际生活中,想要形容声音大小按照之前博客中的介绍,其实就是音频模拟信号的振幅,而在实际的数字信号也就是PCM中,这种振幅被量化成了分贝。本篇博客会介绍音频能量和分贝的关系,并且给出以16k 双通 short类型的数据进行计算分贝的算法。版本声明:山河君,未经博主允许,禁止转载RMS 是计算信号强度的基础,表示信号的均方根值,是一种 绝对强度 的度量。
2024-09-06 09:37:09
3223
2
原创 音频进阶学习二——模数和数模转换中的采样、量化和编码
所有软件的运行都得益于硬件上的突破,数字信号是从40年前就开始高速发展的领域。得益于硬件上从一开始的中规模集成电路,到大规模集成电路,再到现如今的超大规模集成电路,促进了功率更小,体积更小,速度更快,价格更便宜的数字计算机。硬件上的突破使得计算机可以执行复杂的数字信号功能和任务,当然并不是说数字信号就是解决所有信号的解决方案,对于一些需要及时处理的例如:带宽等信号,这种就需要模拟信号或者光信号。而声音是一种波,恰恰可以将这种波转换成数字信号在软件中进行处理。
2024-08-15 17:52:00
2187
2
原创 音频进阶学习一——模拟信号和数字信号
所有软件的运行都得益于硬件上的突破,数字信号是从40年前就开始高速发展的领域。得益于硬件上从一开始的中规模集成电路,到大规模集成电路,再到现如今的超大规模集成电路,促进了功率更小,体积更小,速度更快,价格更便宜的数字计算机。硬件上的突破使得计算机可以执行复杂的数字信号功能和任务,当然并不是说数字信号就是解决所有信号的解决方案,对于一些需要及时处理的例如:带宽等信号,这种就需要模拟信号或者光信号。而声音是一种波,恰恰可以将这种波转换成数字信号在软件中进行处理。
2024-08-09 17:09:48
2894
1
原创 视频进阶学习三——h264框架配合图文+具体抓包分析(万字)
1.压缩视频体积 2.提高对于网络传输的亲和性。而h264作为当下最流行的编码器,也是本人一直在学习的。本章内容就是结合笔者自己抓包和阅读文章,根据实际包结合深入刨析h264数据流的格式是怎样的,这篇文章会很长。版本声明:山河君,未经博主允许,禁止转载这是一篇很长的文章,也是对于视频流媒体入门的最后一篇文章,我希望能够对于一些刚进去音视频领域的朋友能够进行更好的梳理,能够提供一些帮助。那么还是那句话。
2024-04-11 15:10:44
2321
2
原创 视频进阶学习二——编码帧、GOP、码率等
上一篇文章记录了视频为何需要编码以及编码的大致原理——去除视频中的冗余信息,这一篇文章是介绍视频编码的一些基础知识,是对视频编码进一步也是做视频流媒体工作中经常需要用到的技术。值得注意的是:一些初学者会认为视频编码只是将视频进行压缩以减少视频的体积,但这只是其中一个目的,视频编码还有另外一个比较重要的目的是对于网络传输有良好的亲和性。版本声明:山河君,未经博主允许,禁止转载一副图片经过编码后的数据叫做一帧。
2024-04-11 15:09:04
3369
1
原创 视频进阶学习一——视频编码原理之冗余信息
上一篇文章介绍了视频帧率、码率、与分辨率。也介绍了为什么需要对视频进行压缩,因为720P、rgb24编码格式、25帧、1s的视频大小为1280∗720∗310241024∗25∗165.75MB1280∗720∗∗25∗165.75MB这无疑是很大的内存。其实这边文章并没有介绍实际编码应用中使用到的一些技术,而是偏向编码原理的一些知识,但是我个人还是认为知道这些知识还是非常有意义的,那么下一篇会介绍实际编码中的一些知识。
2024-04-02 16:50:13
2239
1
原创 视频基础学习三——视频帧率、码率与分辨率
在之前的文章中详细介绍了一些关于图像的色彩与格式,而视频其实就是由一张张图片进行展示呈现出来的。我们会经常说一段视频的质量好不好,而什么是视频的质量呢?博主的个人理解就是播放视频时的流畅度、清晰度,以及这一段视频的大小。上一篇文章中介绍过如果一张rgb24存储的图片大小为1280∗720∗3102410242.63MB1280∗720∗2.63MB。
2024-03-27 18:21:35
6040
1
linux arm和x86-64音频alsa采集和渲染
2024-08-09
C/C++ DevTools Support (DWARF)
2021-05-18
mysql_QT.rar
2020-07-13
vs2019补丁.zip
2020-05-11
AlterMarkdownTool.zip
2020-04-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人