历史上的今天
返回首页

历史上的今天

今天是:2024年10月26日(星期六)

2021年10月26日 | 音视频相关技术基础知识总结

2021-10-26 来源:eefocus

前阵子写了很多笔记,由于忙于研究生课程学习,故很少有时间整理笔记分享到公众号上,今天整理的笔记是我之前学习音视频技术相关的笔记整理。

 

1、视频

 

1.1、视频帧

帧,是视频的一个基本概念,表示一张画面,一个视频就是由许许多多的帧组成的。

 

1.2、帧率

即单位内帧的数量,单位为:帧/秒 或 fps(frames per second),一秒内包含多少张图片,图片越多,画面越顺滑,过渡越自然。

 

常见的帧率典型值:

(1)24/25 fps:1秒24/25帧,一般的电影频率。

(2)30/60 fps:1秒30/60帧,游戏的频率,30帧可以接受,60帧会感觉更加流畅逼真

(3)85fps:这个帧率及以上人眼基本无法察觉出来,更高的帧率在视频里没有太大意义。

 

2、色彩空间

 

2.1、RGB

通过R、G、B三种基础色,可以混合出所有的颜色

 

2.2、YUV

也叫,YCbCr,是一种亮度与色度分离的色彩格式

(1)Y:亮度,就是灰度值,出了表示亮度信号外,还含有较多的绿色通道量

(2)U:蓝色通道与亮度的差值

(3)V:红色通道与亮度的差值

 

优势:

人眼对亮度敏感,对色度不敏感,因此减少部分UV的数据量,人眼却无法感知出来,这样可以通过压缩UV分辨率,在不影响感观的前提下,减少视频的体积。

 

2.3、RGB与YUV的换算

 

(1)RGB转YUV算法

Y = 0.299R + 0.587G + 0.114B

U = -0.147R - 0.289G + 0.436B

V = 0.635R - 0.515G - 0.100B

 

(2)YUV转RGB算法

R = Y + 1.14V

G = Y - 0.39U - 0.58V

B = Y + 2.03U

 

3、音频

 

3.1、基本知识

人类能够听到的所有声音都称之为音频,在计算机中,音频只是存储在计算机里的声音。

 

PCM:音频数据的承载方式最常用的是脉冲编码调制。

 

在自然界中,声音是连续不断的,是一种模拟信号,那怎样才能把声音保存下来呢?就是将这些模拟信号数字化,即模数转换,将模拟信号转换为数字信号。

 

声音是一种波,由自己的振幅和频率,那么要保存声音,就要保存声音在各个时间点上的振幅。而数字信号并不能连续保存所有时间点的振幅。

 

奈奎斯特采样定理:为了不失真地恢复模拟信号,采样频率应该不小于模拟信号频率中最高频率的2倍。

 

3.2、采样率和采样位数

 

(1)采样率

根据奈奎斯特采样定理,人耳能听到的最高频率为20KHz,所以为了满足人耳的听觉要求,采样率至少为40KHz,通常为44.1KHz,更高的通常为48KHz。

注意:人耳听觉频率范围[20Hz,20KHz]。

 

(2)采样位数

波形振幅在模拟信号上也是连续的样本值,而在数字信号中,信号一般是不连续的,所以模拟信号量化后,只能取一个近似的整数值,为了记录这些振幅值,采样器会采用一个固定的位数来记录这些振幅值,通常有8位、16位、32位。

注意:位数越多,记录的值越准确,还原度越高,但是占用的硬盘空间越大。

 

位数最小值最大值
80255
16-3276832767
32-21474836482147483647
 

3.3、音频编码

由于数字信号是由0、1组成的,因此,需要将幅度值转化为一系列0和1进行存储,也就是编码。

 

3.4、PCM的采集步骤

模拟信号->采样(奈奎斯特采样定理)->量化->编码->数字信号

 

 

3.5、声道数

 

声道数是指支持能不同发声(注意是不同声音)的音响的个数。

  • 单声道:1个声道双声道:2个声道立体声道:默认为2个声道立体声道(4声道):4个声道

 

3.6、码率

码率是指一个数据量中每秒钟能通过的信息量,单位bps(bit per second)

码率 = 采样率 * 采样位数 * 声道数

 

3.7、常见的音频格式

CD格式、WAVE(*.WAV)、AIFF、MP3、MIDI、AAC、WMA、OggVorbis

 

4、FFmpeg

 

4.1、FFmpeg是什么?

是一套可以用来记录、转化数字音频、视频、并能将其转化为流的开源计算机程序。它有着非常强大的功能,主要包括:视频采集功能、视频格式转换、视频抓图、给视频加水印等。

 

4.2、FFmpeg的组成

FFmpeg由三个部分组成:

 

(1)工具

分别是ffmpeg、ffplay、ffserver和ffprobe。

ffmpeg:音视频转码、转换器

ffplay:简单的音视频播放器

ffserver:流媒体服务器

ffprobe:简单的多媒体码流分析器

 

(2)SDK

 

提供开发者使用的SDK,我们可以根据自己的需求使用这些库开发自己的应用程序,这些库主要有:

libavcodec:包含音视频编码器和解码器

libavutil:包含多媒体应用常用的简化编程的工具,如随机数生成器、数据结构、数学函数等功能

libavformat:包含多种多媒体容器格式的封装、解封装工具

libavfilter:包含多媒体处理常用的滤镜功能

libavdevice:用于音视频数据采集和渲染等功能的设备相关

libswscale:用于图像缩放和色彩空间和像素格式转换功能

libswresample:用于音频量采样和格式转换等功能

libpostproc:用于后期处理,当我们使用filter的时候,需要打开这个模块,filter会用到这个模块里的一些基础函数

 

(3)源代码

整个工程的源代码,无论是编译出来的可执行程序还是SDK。

它的源代码由C语言实现,主要在Linux平台上进行开发。


推荐阅读

史海拾趣

FORMOSA公司的发展小趣事

随着互联网和电子商务的兴起,一家名为“FORMOSA电子商城”的平台应运而生。该平台利用先进的互联网技术,为电子产品制造商、分销商和消费者搭建了一个高效、便捷的在线交易平台。FORMOSA电子商城不仅提供丰富的电子产品选择,还通过智能化的推荐系统和优质的客户服务,为用户提供个性化的购物体验。平台还积极推动供应链的数字化转型,帮助合作伙伴优化库存管理、提高运营效率。在短短几年内,FORMOSA电子商城便成为了电子行业内知名的电子商务品牌。

德立电子(DDY)公司的发展小趣事

面对日益激烈的市场竞争,德立电子积极拥抱数字化转型。公司引进先进的生产管理系统和智能设备,实现生产过程的自动化和智能化。通过数字化改造,德立电子提高了生产效率,缩短了生产周期,降低了成本,进一步增强了市场竞争力。

Elprotronic Inc.公司的发展小趣事

随着电子行业的不断发展,客户对电子元器件的需求也在不断变化。Elprotronic Inc.紧跟市场趋势,不断推出具有创新性的产品和技术。其中,一项名为“高速数据传输技术”的创新成果引起了业界的广泛关注。这项技术可以大幅提高数据传输速度,同时保证数据的稳定性和安全性。这一突破性的技术创新为Elprotronic Inc.赢得了更多客户的信赖和支持,也进一步巩固了公司在行业中的地位。

Component Research Co公司的发展小趣事

随着公司规模的扩大,Component Research Co面临着管理上的挑战。为了提升运营效率,公司引入了一系列创新管理措施,如引入先进的生产管理系统、优化供应链管理、推行员工激励机制等。这些措施的实施使得公司的运营效率得到了显著提升,产品质量也得到了更好的保障。

柯爱亚(ceaiya)公司的发展小趣事

在电子行业的发展历程中,柯爱亚以其对技术创新的执着追求而闻名。1999年,柯爱亚成功研发出超薄型功率电感CDH2D11/CD31,并率先实现了量产。这一创新不仅提升了产品的性能,而且满足了市场对于更轻薄、更高效电子元件的迫切需求。柯爱亚凭借这一技术突破,迅速在市场中脱颖而出,赢得了业界的广泛认可。

Display Elektronik GmbH公司的发展小趣事

随着环保意识的日益增强,Display Elektronik GmbH将绿色环保理念融入到了公司的发展中。公司采用环保材料和生产工艺,减少了对环境的污染。同时,Display Elektronik GmbH还积极推广绿色显示技术,为客户提供更加环保、节能的显示解决方案。这种对环保的关注和投入,让Display Elektronik GmbH在行业中树立了良好的形象。

问答坊 | AI 解惑

电容电感滤波原理

整流电路的输出电压不是纯粹的直流,从示波器观察整流电路的输出,与直流相差很大,波形中含有较大的脉动成分,称为纹波。为获得比较理想的直流电压,需要利用具有储能作用的电抗性元件(如电容、电感)组成的滤波电路来滤除整流电路输出电压中的脉 ...…

查看全部问答>

VC++定时器的复位问题

VC++中有可以复位定时器的API吗? killTimer(3);后再SetTimer(3,100,NULL); 可以复位吗? 主要是第一个问题。 谢谢…

查看全部问答>

ARM9开发IDE

现在各个公司,开发arm9 的时候都使用什么开发工具啊?linux下的 ADS吗?版本多少的?…

查看全部问答>

WinCe6运行程序后系统变慢

    俺的系统很奇怪,运行某些程序,比如摄像头抓取的程序、CorePlayer等之后系统就变慢,焦点从“我的设备”移开时图标会呈现一杠一杠的样子。     这是为啥呢?有人遇到过吗?…

查看全部问答>

求助、Keil新手编译问题。

程序: #include #include main() { SCON = 0x52; TMOD = 0x20; TCON = 0x69 TH1 = 0xf3; printf(\"text to output some words\\n\"); } 报错:TEXT2.C(10): 错误 C141: syntax error near \'TH1\'       目标没 ...…

查看全部问答>

Redboot下写入数据在内核读取出来数据不一致?

在Redboot下更新zImage文件,写入到1M,启动内核后,使用dd if=/dev/mtdblock1 of=kernel.img bs=512 count=4578 读取nand flash该区域内容,使用ultraedit比较zImage和kernel.img,数据有不一样的地方,只是个别字节不一样。 同样,在内核下写入c ...…

查看全部问答>

网络最佳兼职

假如你想创业但资金不多或想找个兼职请看这 与您现有的工作相容互补而不冲突             不需要受学历的限制        不需要特殊的专业技能        不需要受 ...…

查看全部问答>

FPGA 视频高手求兼职

本人从事视频ASIC的开发6年,精通H。264/电视信号/VGA编解码,此外,对去隔行,帧率变换(24FPS---〉50或60FPS),SCALER,OSD,JPG/BMP Encoder等也有深刻认识和实际工作经验。现承接视频方面的FPGA或IC设计兼职,还请社会各界朋友多多关照:) ...…

查看全部问答>

[TI原创]LM3S1138 测量频率、多路电压测量、信号发生

刚刚睡醒,到坛子里面逛逛,发个帖子,读书的时候弄的测量外界信号频率、多路电压测量、方波信号发生全部交互采用上位机方式实现,硬件电路未作前级的信号调理,主要是软件上实现基本功能,能够实现扩展,给需要的人参考需要设置电脑分辨率为1152*8 ...…

查看全部问答>