音视频面经_音视频知识解析:第一章音视频基础知识及分析工具
本专栏会持续更新优质内容,敬请订阅,关注更新。
专栏地址:音视频面经_音视频知识解析
------------下面正文开始-------------
1 前言
本节介绍音视频技术最基础的知识,包括:
● 视频播放器原理
● 封装格式(MP4,RMVB,TS,FLV,AVI)
● 视频编码数据(H.264,MPEG2,VC-1)
● 音频编码数据(AAC,MP3,AC-3)
● 视频像素数据(YUV420P,RGB)
● 音频采样数据(PCM)
2 视频播放器原理
2.1 视频播放器原理
播放一个视频文件的流程如下所示:
根据上图,我们可以介绍视频播放器的原理如下:
视频播放器是一个复杂的系统,它负责将视频文件中的数据转换成可以在屏幕上显示的视频画面。这个过程可以分为几个主要步骤:
● 输入与加载:用户首先选择一个视频文件进行播放。视频播放器通过文件I/O操作加载这个文件的数据。
● 解封装:视频文件通常是以一种封装格式(如MP4、AVI等)存储的,这种格式包含了视频、音频以及可能的字幕数据。解封装模块负责解析这些数据,将它们分离成独立的视频流、音频流和其他可能的数据流。
● 解码:分离出来的视频流通常是被压缩过的。视频解码器负责将这些压缩的视频帧转换成未压缩的帧数据。这个过程涉及到复杂的算法,旨在尽可能准确地重建原始视频信号。
● 渲染准备:一旦视频帧被解码,它们需要被适当地处理以供显示。这可能包括缩放、裁剪、颜色空间转换(例如从YUV到RGB)等步骤。
● 显示与同步:最后,处理过的视频帧被发送到显示硬件或软件渲染层进行显示。为了提供流畅的视频播放体验,视频播放器还必须处理音视频同步(AV同步),确保音频和视频在时间上保持一致。
● 用户交互:视频播放器通常还提供用户界面,允许用户控制播放、暂停、快进、快退等操作。
● 错误处理:在整个过程中,播放器还需要能够处理各种潜在的错误,如文件损坏、解码失败等。
2.2 常用播放器
▫ 跨平台系列(非DirectShow框架)
VLC,Mplayer,ffplay……
▫ Windows系列(DirectShow框架)
完美解码,终极解码,暴风影音……
2.3 信息查看工具
▫ 综合信息查看
MediaInfo
▫ 二进制信息查看
UltraEdit
▫ 单项详细分析
封装格式:Elecard Format Analyzer
视频编码数据:Elecard Stream Eye
视频像素数据:YUV Player
音频采样数据:Adobe Audition
3 封装格式(MP4,RMVB,TS,FLV,AVI)
3.1封装格式的简介
▫ 封装格式(Container Format)是指将音频、视频、字幕等数据流按照一定的规范组织在一起、形成一个完整的媒体文件。
它不仅确保了音频和视频数据被正确地存储和同步,还影响着文件的兼容性、效率和质量。在当今数字化和网络化日益加深的背景下,了解并选择适当的封装格式变得尤为重要。封装格式与编码格式(如H.264、VP9等)不同,后者决定了音视频数据如何被压缩和解压缩。
常见的封装格式包括:
1. AVI:由微软在90年代初创立,支持固定CBR(恒定比特率)编码的声音文件。
2. FLV:专为H.263家族设计的格式。
3. MKV:万能封装器,具有良好的兼容性和跨平台性,支持外挂字幕。
4. MOV:QuickTime封装格式。
5. MP4:主要应用于MPEG4的封装。
6. RM/RMVB:由RealNetworks开发的RealVideo格式。
7. TS/PS:主要用于HDDVD原版的封装。
8. WMV:微软推出的格式,用于市场竞争。
视频封装格式与编码方式对应,例如:
● AVI 支持 MPEG-2, DivX, XviD, WMV3, WMV4, WMV9, H.264 等编码。
● MKV 支持所有视频编码。
● MOV 支持 MPEG-2, MPEG4-ASP(XviD), H.264 等编码。
封装格式的选择取决于视频的用途和目标平台。例如,MP4因其良好的跨平台性和兼容性,是上传视频到网络的常用选择。MKV因其能打包多种不同编码的视频、音频及字幕文件,常用于高清蓝光电影的下载。而MOV格式,作为苹果公司开发的QuickTime封装格式,在影视后期领域经常使用。
3.2 封装格式分析工具
▫ Elecard Format Analyzer
3.3 常见封装格式简介
3.3.1 MP4格式简介
MP4(Moving Picture Experts Group-4)是一种广泛使用的多媒体容器格式,主要用于存储数字视频和音频,但也可能包含其他数据,如字幕和静态图片。MP4格式是由MPEG组织定义的标准,特别是MPEG-4 Part 14的文件格式。它通常与MPEG-4视频编码(如H.264或MPEG-4 Part 2)和AAC音频编码一起使用,但也可以支持其他编码标准。
特点:
1. 良好的兼容性:MP4格式被大多数现代设备支持,包括电脑、智能手机、平板电脑和各种便携式媒体播放器。
2. 跨平台性:由于其广泛的兼容性,MP4格式可以在不同的操作系统和平台上无缝播放。
3. 高压缩率:MP4格式支持高效的压缩算法,可以在保持较高视频质量的同时显著减少文件大小,这使得它非常适合在线流媒体和下载。
4. 灵活性:MP4格式可以包含多种类型的数据流,包括视频、音频、字幕等,并且可以适应不同的编码标准和分辨率。
5. 安全性:MP4格式支持数字版权管理(DRM),可以保护内容不被非法复制和分发。
6. 适用性广:MP4格式适用于各种应用场景,包括在线流媒体、数字电视、电影下载、个人视频录制等。
由于上述特点,MP4格式成为了网络上最常见的视频格式之一,特别是在YouTube、Vimeo等视频分享网站上。此外,MP4也是蓝光光盘和数字电视广播中常用的格式之一。
3.3.2 MPEG2-TS格式简介
MPEG2-TS(MPEG2 Transport Stream)格式用于常用于数字电视和流媒体传输。它具有以下特点:
1. 不包含文件头:MPEG2-TS格式的数据由一系列固定大小的TS Packet构成,每个Packet大小为188字节,这种结构有助于在传输过程中保持同步和容错。
2. 数据传输稳定:由于其设计用于传输环境可能不稳定,MPEG2-TS格式对数据丢失和延迟有较好的鲁棒性。
3. 多路复用能力:TS格式可以同时传输多个节目流,每个流都有自己的PID(Packet Identifier),这使得它能够在单一信道内传输多个频道或语言音轨。
4. 兼容性强:MPEG2-TS格式被广泛用于各种设备和平台,包括电视、计算机和移动设备。
5. 易于编辑:由于其分组的特性,MPEG2-TS格式相对容易进行编辑和剪切。
6. 适用于广播和流媒体:MPEG2-TS格式适合在广播网络和互联网流媒体服务中使用,因为它能够适应不同的网络条件和带宽波动。
3.3.3 FLV格式简介
FLV格式是一种专为H.263家族设计的封装格式。它的数据由大小不固定的Tag构成,这与MPEG2-TS格式不同,后者由固定大小的TS Packet组成。FLV格式的一个显著特点是它包含文件头
● 包含文件头
● 数据由大小不固定的Tag构成
4 视频编码数据(H.264,MPEG2,VC-1)
4.1 视频编码的作用
▫ 将视频像素数据(RGB,YUV等)压缩成为视频码流,从而降低视频的数据量,实现数据的压缩。
它通过特定的算法和压缩标准将原始的视频数据转换成一种能够在数字设备上播放、存储和传输的格式。这个过程涉及对视频信号进行压缩、优化和转换,以便更高效地处理和分发视频内容。
以下是视频编码的作用:
1. 数据压缩:
● 视频编码的核心目的是减少视频数据的大小。原始视频数据通常非常大,需要大量的存储空间和带宽来传输。通过编码,视频数据被转换成一种压缩格式,从而显著降低存储和传输成本。
2. 优化播放体验:
● 编码后的视频可以在各种设备上流畅播放,包括计算机、手机、平板电脑和电视等。视频编码确保视频质量与播放设备的性能相匹配,提供最佳的观看体验。
3. 适应不同网络条件:
● 视频编码允许视频内容在不同的网络条件下进行流式传输。通过调整编码参数,如比特率和分辨率,可以适应不同的网络速度和带宽限制,确保视频在低带宽环境下仍可播放。
4. 支持多平台分发:
● 随着互联网的发展,视频内容需要在多个平台上分发,包括社交媒体、视频分享网站和点播服务等。视频编码使得这些平台能够处理来自不同来源的视频内容,并将其提供给全球用户。
5. 保护版权和内容安全:
● 视频编码技术可以与数字版权管理(DRM)系统结合使用,以保护视频内容的版权和安全。编码后的视频可以通过加密和身份验证机制来防止未经授权的访问和复制。
6. 提高处理效率:
● 编码后的视频数据可以更快地进行编辑、处理和转码等操作。这对于视频制作和后期处理领域尤为重要,因为它可以显著提高工作效率并降低成本。
7. 支持高级功能:
● 视频编码还支持高级功能,如帧内预测、运动补偿和变换编码等。这些技术进一步提高了视频压缩效率,同时保持了较高的图像质量。
视频编码在现代数字视频处理中发挥着至关重要的作用,它不仅确保了视频内容的有效存储和传输,还为用户提供了高质量的观看体验。随着技术的不断发展,视频编码将继续为视频产业的创新和发展提供支持。
4.2 常见的视频编码格式
4.3 H.264视频编码格式介绍
1 H.264格式简介
● NALU构成:H.264格式的视频数据由大小不固定的网络抽象层单元(NALU)构成。在多数情况下,一个NALU存储了一帧画面的压缩编码后的数据。
● 最常见的情况下,1个NALU存储了1帧画面的压缩编码后的数据。
由于其出色的压缩效率和图像质量,H.264成为了当今最流行的视频编码格式之一,广泛应用于流媒体、广播、数字电视、蓝光光盘等领域。
2 H.264压缩方法
▫ 比较复杂。包含了帧内预测、帧间预测、熵编码、环路滤波等环节构成。本节不对其中的算法做过多介绍。
▫ 可以将图像数据压缩100倍以上。
4.4 视频编码分析工具
▫ Elecard Stream Eye
Elecard StreamEye 是一款强大的视频质量分析工具,适用于编解码器开发者,系统集成商和传输流制造商。它提供了对视频流的深度分析,包括宏块和帧级别的详细视觉表示。
下面简单介绍下怎么使用:
1. 界面导航
StreamEye 的用户界面由三部分组成:
a. 主菜单
主要包含文件、编辑、视图和工具等选项。
b. 视频窗口
展示输入的视频流。
c. 分析窗口
显示详细的视频流信息。
2. 文件操作
打开视频文件
使用 “File -> Open” 选项从本地磁盘打开需要分析的视频文件。
3 视频流分析
帧类型识别
Type处可以查看每一帧的类型(I帧、P帧或B帧)。这有助于理解视频编码的性能和优化方式。
4 码率分析
使用 “View -> Additional Info” 选项,可以选择展示每个 GOP(图像组)的平均码率、最大码率和最小码率。这可以帮助分析视频流的稳定性和优化可能。
5 分析报告
使用 “File -> Generate Report” 选项,StreamEye 可以生成详细的分析报告,包括所有参数和统计数据。
ps. 我的版本太低了(2.9.2),没有这个功能:
6 高级功能
视觉表示
StreamEye 提供了一个独特的视觉表示功能,它在视频窗口中显示编码块、分区、运动矢量、参考列表等信息。
红色的帧:I帧;蓝色的帧:P帧;绿色的帧:B帧。
7 比较模式
此外,StreamEye 还有一个强大的比较模式,可以同时打开和比较两个视频流。通过 “File -> Compare” 选项可以轻松实现。
5 音频编码数据(AAC,MP3,AC-3)
1音频编码的作用
▫ 将音频采样数据(PCM等)压缩成为音频码流,从而降低音频的数据量。
2 常见的音频编码格式及介绍
2.1 AAC格式
AAC(Advanced Audio Coding)是一种无损和有损音频编码格式,用于压缩和存储音频数据。其特点如下:
● 构成:AAC格式的音频数据由大小不固定的ADTS(Audio Data Transport Stream)包构成。
● 压缩效率:AAC采用较为复杂的压缩算法,能够实现超过10倍的音频数据压缩比。
● 质量:相比MP3等其他音频格式,AAC通常能提供更高的音质,尤其是在高比特率下。
● 应用:AAC格式广泛应用于音乐下载、流媒体服务、广播及数字电视等领域。
● 兼容性:AAC格式被多种设备和平台支持,包括智能手机、平板电脑、电视和汽车音响系统等。
2.2 AC-3格式
AC-3(Audio Coding 3)是美国杜比实验室开发的一种音频压缩技术,被广泛用于电影、电视节目、广播和家用音响设备中。这种格式特别适合于电影院和大型家庭影院系统,因为它能够提供多声道环绕声效果,为用户带来沉浸式的听觉体验。AC-3格式的特点包括:
1. 多声道支持:AC-3支持多种声道配置,包括单声道、立体声、多声道环绕声等,其中5.1声道是最为人所熟知的配置,包括前左、前右、中央、低音炮、后左和后右六个声道加上一个低频效果声道。
2. 高效的压缩:AC-3通过去除人耳不易察觉的音频成分来实现高效的音频压缩,这样可以在不牺牲音质的前提下减小文件大小,便于存储和传输。
3. 动态范围压缩:AC-3具备动态范围压缩功能,能够平衡音频信号的动态范围,使得小声音和大声音之间的差异更适合人的听觉感受。
4. 适应性:AC-3格式适应不同的应用环境和设备,从电影院的大屏幕到家庭影院系统都能提供良好的声音质量。
5. 标准化:AC-3已成为一种行业标准,被许多国家和地区的广播和电子娱乐产业采纳。
2.3 MP3格式
MP3(MPEG-1 Audio Layer 3)是一种广泛使用的音频压缩格式。它利用了人耳对于某些频率不敏感的特性,通过去除这些频率成分来达到压缩的效果。MP3格式的特点包括:
■ 压缩效率高:MP3格式能够大幅度地压缩音频数据,同时保持良好的音质,使其成为音乐文件共享和网络流媒体的主要格式。
■ 广泛应用:MP3格式被几乎所有的音频播放设备和软件支持,是当今最流行的音频格式之一。
■ 易于传输和存储:由于其高压缩率,MP3文件占用的存储空间较小,便于传输和存储。
■ 标准化:MP3格式已成为国际标准,被ISO/IEC定义为MPEG-1 Audio Layer 3。
MP3格式虽然是一种有损压缩格式,但在大多数情况下,压缩后的音频质量足够好,以至于人耳难以分辨出与原始音频的差异。
2.4 WMA格式
WMA(Windows Media Audio),它是微软公司推出的与MP3格式齐名的一种新的音频格式。WMA在压缩比和音质方面都超过了MP3,更是远胜于RA(Real Audio),即使在较低的采样频率下也能产生较好的音质。
WMA可以用于多种格式的编码文件中。应用程序可以使用Windows Media Format SDK进行WMA格式的编码和解码。
平时我们只要提到下载音乐,第一反应就是MP3,其实MP3已经逐渐成为音频格式的代名词,实际离灭亡不远,绝大多数在线音频试听网站都使用的是WMA格式(通常码率64 Kbps)。
WMA解码比起MP3较为复杂,因此许多山寨手机及有名的低端品牌手机都不支持WMA音频格式,但是随着电子科技发展,绝大多数音乐播放器都支持。
在64kbps的数据速率时,在13000Hz-20000Hz频率段就能保留了大部分信息,但64kbps的WMA的低频表现实在有点令人失望,听上去比较硬,如同加入了哇声效果一般,感觉非常不好,当然比同比特64K的mp3要好感觉声音更集中。
听觉上64WMA的表现相当于96kbps MP3的音质水平。96K的WMA相当于128K的MP3,WMA在高于128以上的各种比特率表现相差不大,高频和泛音都很丰富,一般人听不出WMA128Kbps以上的音质和音色的差异,总体感觉WMA的声音偏硬,适合流行摇滚,如果是古典或者纯人声的话,感觉有点生硬,在低于128K时,WMA对于MP3拥有绝对优势!128以上的WMA相比MP3会有薄的感觉。
在128kbps及以下码流的试听中WMA完全超过了MP3格式,低码流之王不是浪得虚名的。但是当码流上升到128kbps以后,WMA的音质却并没有如MP3一样随着码流的提高而大大提升。
WMA是随身数码播放器最常用的音频格式,绝大多数随身播放器都支持WMA格式音乐的播放。
特点有:
● 有损压缩:WMA格式是以减少数据流量但保持音质的方法来达到压缩率更高的目的,其压缩率一般可以达到1:18,生成的文件大小只有相应MP3文件的一半
● 无损压缩:当WMA格式的版本更新到9.0时,微软新推出了一种无损压缩方式,叫做“WMA-Lossless”,这种格式已经从WMA 9.0 Lossless支持的最高16Bit量化位数,44100Hz采样频率的音质升级到了WMA 9.2 Lossless的24Bit量化位数和96000Hz的采样频率,相比FLAC和APE这样的无损压缩格式,压缩率更高,占空间更小。
应用:
一些常见的支持WMA的应用程序包括Windows Media Player、Windows Media Encoder、RealPlayer、Winamp等等。其它一些平台,例如Linux和移动设备中的软硬件也支持此格式。
3 音频编码分析工具
暂不涉及。
4 音频分析软件Audacity
推荐Audacity。它的功能非常强大,可以对音频进行分析、也可以按要求生成音频、录音、播放等等
打开软件后,可以直接拖动音频文件进行分析
光谱分析
频谱图视图
Audacity 中的每个轨道都可以在频谱图中查看:
6 视频像素数据(RGB,YUV)
1 视频像素数据作用
● 保存了屏幕上每个像素点的像素值。
这些数据是构成视频画面的基本信息,它们可以是RGB格式的,也可以是YUV格式的。RGB格式的视频像素数据直接包含了红绿蓝三种颜色的强度值,而YUV格式的数据则将亮度信息与色度信息分开存储,这种格式特别适合压缩编码。
2 常见格式
常见的像素数据格式有RGB24, RGB32, YUV420P,YUV422P,YUV444P等。压缩编码中一般使用的是YUV格式的像素数据,最为常
见的格式为YUV420P。
2.1 RGB介绍
RGB 相对比较简单。图像的每一个像素都有 R(红(Red))、G(绿(Green))、B(蓝(Blue)) 三个值。
这是因为RGB三色可以混合成世界上所有的颜色
RGB 是我们平常遇到最多的一种图像颜色空间,比如摄像头采集的原始图像就是 RGB 图像,显示器显示的图像也是RGB 图像。
一般来说,我们的RGB图像,每一个像素都是分别存储R、G、B三个值,且三个值依次排列存储。比如对于一张8bit 位深的 RGB图,每个值占用一个字节。BGR图像也只是排列方式不一样,BGR在OpenCV中用的比较多。
以RGB24为例,从下图可见,RGB三个值组成一个像素,RGB24依次存储了每个像素点的R、G、B信息。
简单计算一下一张分辨率 1280 * 720 的RGB24图片的大小为:1280 * 720 * 3 / 1024 / 1024 = 2.63MB
PS:BMP文件中存储的就是RGB格式的像素数据。
下图是RGB色彩空间看到的图像:
2.2 YUV介绍
YUV 最早主要是用于电视系统与模拟视频领域。现在视频领域基本都是使用 YUV 颜色空间。
● 跟 RGB 图像中R、G、B 三个通道都跟色彩信息相关这种特点不同,YUY图像将亮度信息()Y与色彩信息 U、V分开来。如下图表示YUV色彩空间从Y,U,V三个维度看到的图像:
● Y 表示亮度(Luminance、缩写Luma),即为灰度值,是图像的总体轮廓,称之为 Y分量。
● U、V 表示色度(Chrominance、缩写Chroma),即为色调和饱和度,主要描绘图像的色彩信息,分别称为 U分量和 V分量。
这样一张图像如果没有了色度信息 U、V,只剩下亮度 Y图像。则依旧是一张图像,只不过是一张黑白图像。这种特点有什么好处呢?
答:这样一套系统就能兼容彩色电视和黑白电视。
2.2.1 YUV格式的优势
人眼天生的对亮度信息更敏感,对色彩信息不太敏感。
所以对色彩信息进行次采样,是减少降低视频信息量的有效方法。其实早在数字化视频处理之前,模拟彩色电视就已经使用了这个原理。
这样做的第一步就是要把亮度信号和色彩信号分离。严格说,要把RGB视频信息转换到CIELab、HSI或类似的表达方式,才能彻底分离亮度信号和色彩信号。但是那些运算太繁琐了,所以通常都是沿用模拟电视早已引入的YUV色彩空间,它与RGB的相互转换只需要线性运算。
转换到YUV之后,就可以对U、V通道进行次采样了,把数据量减少到原来的四分之一,也可以很好地再现原始视频。
也就是说RGBA颜色空间中,各个分量的地位都是平等的,不适合压缩。
但是YUV格式中,Y只要保持住,UV提供的色彩偷工减料很难被肉眼发现,这样UV就可以尽可能的少,从而降低了数据量,而没有减少观看画面的肉眼质量。
所以,只要涉及到视频文件的传输,那就一定是先用YUV数据压缩,因为YUV数据已经是偷工减料之后的数据了,这时候再压缩一次,数据量再减少一次。就可以更方便的传输了。
2.2.2 YUV的常见类型
根据U、V分量的采样率不同,也就是多个像素共用U、V分量的规则不同,YUV有如下几个常见类别:
● YUV 4:4:4 一个像素一组Y、U、V
● YUV 4:4:0 垂直方向两个像素共用一组U、V
● YUV 4:2:2 水平方向两个像素共用一组U、V
● YUV 4:2:0 水平垂直四个像素共用一组U、V
● YUV 4:1:1 水平方向四个像素共用一组U、V
2.2.2.1 YUV444
每个像素都包含一组完整的Y、U、V分量
YUV444 每个像素占用的存储空间,也就是像素深度(piex_depth)为:3 * 8bit = 24bits。
一帧 YUV444 图像占用的空间就是:w * h * 3byte
可以看到,YUV444类型占用的看空间和RGB格式是一样的。实际上就是将每个RGB像素都转化成一个YUV像素,是一一对应的。
2.2.2.2 YUV440
垂直方向两个相邻的像素共用一组U、V。这相当于丢掉了一个像素的U、V分量,所以YUV422对YUV444来说是有损的,利用了人眼天生的对亮度信息更敏感,对色彩信息不太敏感的原理。使得图像占用的空间变小了。
YUV440的像素深度(piexl_depth):(1 * 8bit) + (0.5 *8bit) + (0.5 *8bit) = 16bits
一帧 YUV440 图像占用的空间就是:w * h * 2byte
2.2.2.3 YUV422:
水平方向两个相邻的像素共用一组U、V。也就可以理解为两个Y共用一组U、V分量,
YUV422 的像素深度(piexl_depth):(1 * 8bit) + (0.5 *8bit) + (0.5 *8bit) = 16bits
一帧 YUV422 图像占用的空间就是:w * h * 2byte
2.2.2.4 YUV411:
水平方向两个相邻的像素共用一组U、V
YUV411 的像素深度(piexl_depth):(1 * 8bit) + 2*(0.25 *8bit) = 12bits
一帧 YUV411 图像占用的空间就是:w * h * 1.5byte
2.2.2.5 YUV420:
水平垂直方向四个相邻的像素共用一组U、V
YUV420的像素深度(piexl_depth):(1 * 8bit) + 2*(0.25 *8bit) = 12bits
一帧YUV420 图像占用的空间就是:w * h * 1.5byte
注意:
YUV420 因为是2x2矩阵平面的4个像素共用一组U、V
所以它的像素排列顺序在内存空间中有其特定规律,按"Z"字型排列
如上所述,根据U、V分量不同的采样规则,YUV可以分为多个类别
以上列举的是较为常见的几种,还有其他YUV类别,有兴趣可自行研究
每一类YUV又可以根据Y、U、V三个分量数据的存储排列方式不同细分出不同格式
2.2.3 YUV数据存储模式
1 三种存储模式
● planar平面模式: 先连续存储所有像素点的 Y 分量,再连续存 U 分量,然后连续存 V 分量
YUV444为例,planar平面存储模式图示:
然后又根据是U在前还是V在前,分为I444和YV24。
以YUV422为例,planar平面存储模式图示:
以YUV420为例,planar平面存储模式图示:
● Semi-Planar半平面模式: 先连续存储所有像素点的 Y 分量,再交替存储U、V分量
以YUV422为例,Semi-Planar半平面存储模式图示:
以YUV420为例,Semi-Planar半平面存储模式图示:
● packed 打包模式: 连续交替存储每个像素点的 Y、U、V 分量
注:在YUV422中,有时候会看到还有一种 Interleaved 模式,它其实就是 Packed,
只不过YUV422格式中有人觉得用 Interleaved 这个词更形象一些,
所以在YUV422中有时会用 Interleaved 代替 Packed 表述。
2 各种YUV格式类型的名称总结:
3 YUV格式像素数据参看工具
YUV Player
2.3 思考
如果一部高清(1920*1080)电影(假设为2小时整,每秒30帧)按RGB24像素格式来存储,需要多大的空间呢?
两小时的秒数:3600秒/小时 * 2小时 = 7200秒
总帧数:7200秒 * 30帧/秒 = 216,000帧
一个RGB24像素占用的空间为:8位(bit) * 3颜色通道 = 24位(bit) = 3字节(Byte)
所以总空间为:7200秒 * 30帧/秒 * 1920像素宽 * 1080像素高 * 3字节/像素 = 134,368,000,000字节 ≈ 1.3437太字节(TB)
电影院的电影就是按像素格式存储的,所以每部电影占用的空间是很大的。
3 参考
1. yuv 格式
2. 2.7.1.2. Planar YUV formats — The Linux Kernel documentation
7 音频采样数据
1 PCM格式简介
PCM(Pulse Code Modulation)格式是一种音频数据格式,它将模拟音频信号转换为数字信号,以便在数字系统中进行处理、存储和传输。PCM格式的音频数据由一系列离散的数字样本组成,每个样本代表音频信号在某一时刻的幅度。
● 单声道的情况下按照顺序存储每个采样点的数据。
● 双声道的情况下按照“左右、左右”的顺序存储每个采样点两个声道的数据。
PCM格式的音频数据通常包含以下几个部分:
■ 采样率:表示每秒采样的次数,单位是Hz(赫兹)。
■ 采样精度:表示每个采样点的比特数,决定了动态范围和信噪比。
■ 声道数:表示音频数据的声道数量,如单声道、立体声(双声道)或多声道。
特点
PCM数据体积很大,一般情况下一首4分钟的PCM格式的歌曲体积为:
4*60*44100*2(左右双声道)*2(16bit,2Byte)=42.3MByte
PS:这里假定采样率为44100Hz,采样精度为16bit。
PCM格式的文件通常具有较高的数据量,因此在存储和传输时需要考虑压缩。
2 音频采样数据(Pulse Code Modulation,PCM)的作用
▫ 保存了音频中每个采样点的值。
展开来说的话,音频采样数据(Pulse Code Modulation,PCM)的作用主要包括以下几点:
1. 数字信号表示:PCM是将连续时间、连续幅度的模拟信号转换为离散时间、离散幅度的数字信号的过程。这是数字音频处理和存储的基础。
2. 无损记录:PCM数据记录了音频信号的精确波形,因此理论上可以实现无损的音频记录和回放。
3. 兼容性:PCM数据是许多音频编码格式(如WAV)的基础,这些格式被广泛用于音频编辑、处理和流媒体传输。
4. 高保真音频:在音频设备(如CD播放器)中,PCM数据被直接用于音频信号的重建,能够提供高保真的音质。
5. 编解码基础:大多数音频编码格式(如MP3、AAC)在压缩音频之前,都会先将音频信号转换为PCM数据,然后再进行编码。
6. 数字接口标准:PCM数据格式也被用作数字音频设备之间的接口标准,如S/PDIF和HDMI音频传输。
综上所述,PCM数据是音频信号数字化过程中的关键组成部分,它使得音频信号能够在数字系统中进行处理、存储和传输,同时保持尽可能高的音质。
3 音频采样数据查看工具
1 Adobe Audition
查看PCM数据可以用Adobe Audition工具。
2 Audacity
在Audacity里,PCM数据可以按原始数据的方法导入打开
然后选择对应的声道数、采样精度、采样率即可打开
8 小动手
使用下面软件对视频文件进行分析:
▫ 查看文件的总体信息 (MediaInfo)
▫ MKV、MP4、AVI封装格式信息 (Elecard Format Analyzer)
▫ H.264码流分析信息(Elecard Stream Eye)
▫ YUV视频像素数据 (YUV Player)
▫ PCM音频采样数据 (Adobe Audition)
本专栏会持续更新优质内容,敬请订阅,关注更新。
专栏地址:音视频面经_音视频知识解析
点赞、订阅后,可在评论区留言领取资料和源码工程
本人在CVTE从事音视频开发工作多年,推出该专栏的目的是帮助更多有意向从事音视频开发的同学了解音视频编解码等基本知识、熟悉FFmpeg、SDL、OpenGL等开源框架的使用和编程,并动手开发视频播放器。 这些都是目前大厂音视频开发工程师相关职位要求的必备技能。本专栏会持续更新优质内容,敬请订阅,关注更新。随着内容不断丰富,可能会做付费专栏。另外提供CVTE内推、职位信息、面试答疑