学音视频开发需要学数字逻辑吗

学音视频开发需要学数字逻辑吗,第1张

总体来讲,音视频开发是有一定的技术门槛的,我觉得至少需要在这个领域踏踏实实积累个3-5年,才能对音视频相关的开发知识有一个整体、深刻的理解。
从技术上来讲,需要从如下两个大类知识点上去积累:
C/C++通用开发知识
音视频开发的主要编程语言就是C和C++。
这块的专业知识积累是通用的,并不局限于某个特定的行业,属于程序员的技术功底。
可以重点关注如下几个方面:
计算机系统的底层工作原理
*** 作系统原理
程序的编译、链接和加载机制
C/C++语言特性背后蕴含的思想,底层工作原理,适用场景,存在什么样的问题
软件设计原则和设计模式
数据结构和算法
多线程并发编程原理
网络编程
跨平台
*** 作系统API
软件调试
2 音视频领域专业知识
这块属于从事音视频行业的专业知识。
这块的专业知识是非常多的,每个功能模块背后涉及很多专业的知识。
音视频的开发可以分为两大块,涉及的内容大致如下:
音视频客户端开发
客户端应用开发
音视频引擎开发
音视频引擎SDK
音视频引擎框架
音视频引擎功能模块
音/视频采集
音/视频渲染
音/视频数据处理
音/视频编/解码
录制
串流
音视频同步
流媒体服务器开发
通用服务器开发知识,需要关注如下几个点
高稳定性
高性能
高并发
高可用
流媒体服务器开发
SFU vs MCU
流媒体协议转换
弱网下的音视频传输协议
录制 & 转码

上述内容中,客户端应用开发、音视频引擎SDK、音视频引擎框架、通用服务器开发等主要涉及C/C++通用开发知识,但要设计好这些部分必须对音视频相关的知识和产品业务有比较深刻的理解才能做到。通常,音视频架构师比较关注这些部分。
而音视频引擎底层功能模块和SFU/MCU流媒体服务器的开发,则和音视频的专业知识密切相关。
已经给大家准备好了安装环境和各种视频资料,资料放在自己的群里面:832218493(需要自取)
视频数据可以通过如下方式获得:
USB摄像头
专业的硬件视频采集卡(有软压卡和硬压卡之分)
网络摄像机(支持RTSP协议)
*** 作系统提供的屏幕录制API
读取音视频文件并解码
订阅流媒体服务器上的流
音频数据可以通过如下方式获得:
声卡
扬声器播放声音的回环采集(依赖 *** 作系统的API)
读取音视频文件并解码
订阅流媒体服务器上的流
支持音频输入的网络摄像机(支持RTSP协议)
支持音频输入的视频采集卡
在手机上, *** 作系统的SDK会提供相关的音视频采集接口
音/视频渲染
视频渲染一般需要了解OpenGL,而音频渲染需要了解OpenAL
可以通过开源库SDL来快速实现渲染模块
在Windows下使用DirectShow框架, *** 作系统提供了对应的视频和音频渲染模块(通过GraphEdit可以看到)
在DirectShow中渲染器会涉及到音视频同步的策略,当然,也完全可以自己去实现音视频同步模块
音/视频数据处理
这些模块基本是在编码前或解码后,对视频或音频的原始数据进行某种算法上的处理
视频处理主要包括分辨率转换、色彩空间转换、帧率转换、图像增强、多路视频拼接、添加字幕、添加LOGO等,这块对整体的性能影响比较大,往往需要使用SIMD指令进行汇编优化或使用GPU算法进行加速
音频处理主要包括回声消除、噪声抑制、自动增益、混音等,这块往往会涉及比较多的信号处理和数学知识,是音频中比较复杂的一块
音/视频编/解码
视频编/解码
要理解视频的基本编码原理,熟悉视频编码的关键参数和码流格式
目前使用比较多的是H264,H265开始逐步在使用,其他的视频编码也有很多,如AVS、VP8、VP9等
视频编码对音视频引擎的性能影响比较大,这块基本都是需要使用GPU加速的,目前的Intel集显对H264和H265支持还是比较好的,NVIDIA的独立显卡在编码上存在路数的限制;手机上一般都有对应的硬件加速模块;在性能较好的硬件上,可以考虑开源的X264
音频编/解码
要理解音频的基本编码原理,熟悉音频的关键参数和码流格式
目前使用比较多的是AAC,其他的音频编码也有很多,如G711、G722、OPUS等
在PC上,一般音频的相关模块对性能的影响不明显,但在海思嵌入式系统上,音频模块对性能的影响就不能忽略,因为海思基本没有提供音频的硬件加速模块,而ARM CPU性能也有点弱
录制
需要理解FLV、MP4、TS等容器格式
对于特殊的录制方式要注意软件的处理方式,例如,加片头和片尾的录制功能,追加录制
MP4录制要注意moov box放在文件开始或结束对录制文件的写入和点播的影响
录制时音视频均匀混合的策略
串流
理解视频互动、直播和点播的工作原理
关键评价指标
延迟
首屏时间
同步
流畅性
画质/音质
理解下述的几种音视频传输协议
RTMP
>安全气囊系统 (简称SRS)
安全气囊是现代轿车上引人注目的新技术装置。为了减小汽车发生正面碰撞时由于巨大的惯性力所造成的对驾驶员和乘员的伤害,现代汽车在驾驶员前端方向盘中央普遍装有安全气囊系统,有些汽车在驾驶员副座前的工具箱上端也装有安全气囊系统。实验和实践证明,汽车装用安全气囊系统后,汽车发生正面碰撞事故对驾驶员和乘员的伤害程度大大减小。有些汽车不仅装有前端安全气囊,还装有侧向安全气囊,在汽车发生侧向碰撞时,也能使侧向安全气囊充气,以减小侧向碰撞时的伤害。安装了安全气囊装置的轿车方向盘,平常与普通方向盘没有什么区别,但一旦车前端发生了强烈的碰撞,安全气囊就会瞬时间从方向盘内“蹦”出来,垫在方向盘与驾驶者之间,防止驾驶者的头部和胸部撞击到方向盘或仪表板等硬物上,这种奇妙的装置自从面世以来,已经挽救了许多人的性命。美国一研究所分析了 1985年至1993年美国7000多起汽车交通事故中发现,有气囊装置的轿车前部撞车,驾驶者的死亡率,大轿车降低了30%,中型轿车降低11%,小型轿车降低14%。
其实,早在40年前就发明了安全气囊。1953年8月18日,美国人约翰赫特里特获得了“汽车缓冲安全装置”的美国专利。赫特里特是一位自学成才的宾夕法尼亚州工程师,他在1952年的一次事故后,萌发了设计撞车安全装置的想法。在这次事故中,他为躲避一个障碍物而猛打方向盘进行制动,他和妻子都用手臂本能地保护坐在前座中间位置上的女儿。这次事故后他意识到必须有一个更好的方法来保护乘员,两周之后他绘好了设计图纸交给了代理人,这份图纸确定了今天安全气囊的雏型。
当然,事物的发展不是一帆风顺的,安全气囊从取得专利到应用推广,竟然走了三十多年的时间,经历了几上几下的波折,因为汽车制造商以成本理由拒绝接受安全气囊装置。前几年才由美国参议院通过公路死伤减少条例,确认了安全气囊的作用,规定从1995年9月1日以后制造的轿车前排座前均应装备安全气囊,美国政府还要求1998年以后的新轿车都装备驾驶者和乘客用的安全气囊。目前各国生产的中高级轿车,大多数有安全气囊,有些轿车已将安全气囊列入必装件。
(一)安全气囊系统工作原理:
当汽车发生正面碰撞事故时,安全气囊控制系统检测到冲击力(减速度)超过设定值时,安全气囊电脑立即接通充气元件中的电爆管电路,点燃电爆管内的点火介质,火焰引燃点火药粉和气体发生剂,产生大量气体,在0。03秒钟的时间内即将气囊充气,使气囊急剧膨胀,冲破方向盘上装饰盖板鼓向驾驶员和乘员,使驾驶员和乘员的头部和胸部压在充满气体的气囊上,缓冲对驾驶员和乘员的冲击,随后又将气囊中的气体放出。
(二)安全气囊的组成
安全气囊系统主要由碰撞传感器、安全气囊电脑、 SRS指示灯和气囊组件四部分组成。
1、碰撞传感器
碰撞传感器是安全气囊系统中主要的控制信号输入装置。其作用是在汽车发生碰撞时,由碰撞传感器检测汽车碰撞的强度信号,并将信号输入安全气囊电脑,安全气囊电脑根据碰撞传感器的信号来判定是否引爆充气元件使气囊充气。安全气囊系统一般装有2~4个碰撞传感器,前左、右挡泥板各装一个,有的前面保险杠中间还装有一个,有的车内还装有一个。碰撞传感器现大多数采用惯性式机械开关结构。
碰撞传感器由壳体、偏心转子、偏心重块、固定触点、旋转触点等部分组成。在传感器外还固定有一个电阻R,电阻R的功用是对系统进行自检时,检测安全气囊电脑与前气囊碰撞传感器之间的联接导线是否断路或短路。
在正常情况下,偏心转子和偏心重块在螺旋d簧d力的作用下,顶靠在与外壳相连的止动块上,此时,旋转触点与固定触点不接触,开关"OFF"。当汽车发生碰撞时,偏心重块由于惯性力将带动偏心转子克服d簧d力产生偏转。当碰撞强度达到设定值时,偏心转子偏转角度将使旋转触点与固定触点接触而闭合,此时碰撞传感器向安全气囊电脑输入一个"ON"信号。安全气囊电脑只有收到碰撞传感器输入的"ON"信号时,才会去引爆充气元件。在有些汽车中还装有侧向安全气囊,当汽车发生侧向碰撞时,安全气囊也会充气,因此装有侧向安全气囊的系统,在汽车的左右侧还装有碰撞传感器。
2、安全气囊电脑
安全气囊电脑是安全气囊系统的控制中心,其功用是接收碰撞传感器及其他各传感器输入的信号,判断是否点火引爆气囊充气,并对系统故障进行自诊断。
安全气囊电脑还要对控制组件中关键部件的电路(如传感器电路、备用电源电路、点火电路、SRS指示灯及其驱动电路)不断进行诊断测试,并通过SRS指示灯和存储在存储器中的故障代码来显示测试结果。仪表盘上的SRS指示灯可直接向驾驶员提供安全气囊系统的状态信息。电脑存储器中的状态信息和故障代码可用专用仪器或通过特定方式从串行通讯接口调出,以供装配检查。
(1)信号处理电路
信号处理电路主要由放大器和滤波器组成。其功用是对传感器检测的信号进行整形、放大和滤波,以便SRS电脑能够接收、识别和处理。
(2)备用电源电路
安全气囊系统有两个电源:一个是汽车电源(蓄电池和交流发电机);另一个是备用电源(BACK UP POWER)。备用电源又称为后备电源或紧急备用电源。备用电源电路由电源控制电路和若干个电容器组成。在单安全气囊系统的控制组件中,设有一个电脑备用电源和一个点火备用电源。在双安全气囊系统的控制模块中,设有一个电脑备用电源和两个点火备用电源,即两条点火电路各设一个备用电源。点火开关接通10s 之后,如果汽车电源电压高于SRS电脑的最低工作电压,那么电脑备用电源和点火备用电源即可完成储能任务。
备用电源的功用是:当汽车电源与SRS电脑之间的电路切断后,在一定时间(一般为6s)内,维持安全气囊系统供电,保持安全气囊系统的正常功能。当汽车遭受碰撞而导致蓄电池和交流发电机与SRS电脑之间的电路切断时,电脑备用电源能在6s之内向电脑供给电能,保持电脑测出碰撞、发出点火指令等正常功能;点火备用电源能在6s之内向点火器供给足够的点火能量引爆点火剂,使充气剂受热分解给气囊充气。时间超过6s之后,备用电源供电能力降低,电脑备用电源不能保证电脑测出碰撞和发出点火指令;点火备用电源不能供给最小点火能量,SRS气囊不能充气膨开。
(3)保护电路和稳压电路
在汽车电器系统中,许多电器部件带有电感线圈,电器开关琳琅满目,电器负载变化频繁。当线圈电流接通或切断、开关接通或断开、负载电流突然变化时,都会产生瞬时脉冲电压即过电压,这些过电压如果加到安全气囊系统电路上,系统中的电子元件就可能因电压过高而导致损坏。为了防止安全气囊系统元件遭受损害, SRS控制模块中必须设置保护电路。同时,为了保证汽车电源电压变化时,安全气囊系统能够正常工作,还必须设置稳压电路。
3、SRS指示灯
SRS指示灯是安全气囊系统指示灯的简称。SRS指示灯又称为SRS警告灯或SRS警示灯。SRS指示灯安装在驾驶室仪表盘面膜的下面,并在面膜表面的相应位置制做有图形或 SRS、AIR BAG等字样表示。
SRS指示灯的功用是指示安全气囊系统功能是否处于正常状态。当点火开关接通"ON"或"ACC"位置后,如果SRS指示灯发亮或闪亮约6s〈闪6下〉后自动熄灭,表示安全气囊系统功能正常。如果SRS指示灯不亮、一直发亮或在汽车行驶途中突然发亮或闪亮,表示自诊断系统发现安全气囊系统有故障,应及时排除。自诊断系统在控制SRS指示灯发亮或闪亮的同时,还会将所发现的故障编成代码存储在存储器中。检查或排除安全气囊系统故障时,首先应用专用检测仪器或通过特定方式从诊断插座或通讯接口调出故障代码(通常称为故障码〉,以便快速查寻与排除故障。实践证明,在汽车遭受碰撞,气囊已经膨开后,故障码一般难以调出。如此设计的目的是要求在SRS气囊引爆后,必须更换SRS电脑。
4、气囊组件
气囊组件由充气元件和气囊组成,均安装在方向盘内或工具箱上端,不可分解。充气元件由电爆管、点火药粉及气体发生剂组成。充气元件的功用是给气囊充气。气囊由尼龙布制成,内表面敷有树脂。
车辆发生碰撞时,碰撞冲击力使碰撞传感器和触发传感器接通, SRS电脑接通引爆电路,使电流流过电爆管,使其发热将电爆管内的点火介质引燃,火焰随即扩散到点火药粉和气体发生剂,产生大量气体。气体经滤网冷却后进入气囊内,气囊急剧膨胀,冲破方向盘,缓冲对驾驶员和乘员的冲击。充气元件与气囊安装在方向盘上,与方向盘一起转动,电爆管与SRS电脑之间的导线联接是靠螺旋导线〈游丝〉来联接的

软件开发过程:立项、需求分析、概要设计、详细设计、编码、测试、运行及维护;

单元测试 参照 详细设计说明说(LLD)
集成测试 参照 概要设计说明书(HLD)
系统测试 参照 需求规格说明说(SRS)

需求规格说明书 是为使用用户和软件开发者双方对该软件的初始规定有一个共同的理解, 使之成为整个开发工作的基础。
概要设计 就是设计软件的结构,包括组成模块,模块的层次结构,模块的调用关系,每个模块的功能等等。
详细设计 就是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。

非功能性需求  

4-1、系统需求(system requirement)用于描述包含多个子系统的产品(即系统)的顶级需求。系统可以只包含软件系统,也可以既包含软件又包含硬件子系统。人也可以是系统的一部分,因此某些系统功能可能要由人来承担。

4-2、业务规则包括企业方针、政府条例、工业标准、会计准则和计算方法等。业务规划本身并非软件需求,因为它们不属于任何特定软件系统的范围。然而,业务规则常常会限制谁能够执行某些特定用例,或者规定系统为符合相关规则必须实现某些特定功能。有时,功能中特定的质量属性(通过功能实现)也源于业务规则。所以,对某些功能需求进行追溯时,会发现其来源正是一条特定的业务规则。

4-3、功能需求记录在软件需求规格说明( SRS )中。 SRS 完整地描述了软件系统的预期特性。 SRS 我们一般把它当作文档,其实, SRS 还可以是包含需求信息的数据库或电子表格;或者是存储在商业需求管理工具中的信息;而对于小型项目,甚至可能是一叠索引卡片。开发、测试、质量保证、项目管理和其他相关的项目功能都要用到 SRS 。除了功能需求外, SRS 中还包含非功能需求,包括性能指标和对质量属性的描述。

4-4、质量属性(quality attribute)对产品的功能描述作了补充,它从不同方面描述了产品的各种特性。这些特性包括可用性、可移植性、完整性、效率和健壮性,它们对用户或开发人员都很重要。其他的非功能需求包括系统与外部世界的外部界面,以及对设计与实现的约束。

4-5、约束(constraint)限制了开发人员设计和构建系统时的选择范围,如局限于软件工程学科。 注:分清楚那些是业务需求、哪些是用户需求、哪些是功能性需求和非功能性需求对软件的开发有着重大的指导意义,绝不可以以偏概全,错误地去揣摩用户的心思;对于开发者而言,所有软件功能的开发我们都应该一一征求用户的意见,对需求有了清晰的认识后再进行实质性的开发工作。

转自:>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12725946.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存