嵌入式音视频开发——压缩编码基础概念
音视频压缩技术通过消除空间、时间、感知和编码冗余,解决原始数据体量庞大的传输存储问题。核心是在码率、失真度和复杂度之间取得平衡,采用帧内/帧间预测、变换编码、量化和熵编码等技术,实现高达10:1以上的压缩比。有损压缩利用人眼/耳感知特性舍弃不敏感信息,无损压缩则完全保留原始数据。现代编码标准(如H.264/H.265)采用混合编码框架,通过DCT变换、运动补偿等关键技术,显著降低数据量(如1080
1、为何要进行压缩?
因为⾳视频原始数据的体量过于庞大,会导致数据的传输和存储变得困难。
存储困难:一张 DVD 只能存储几秒钟的未压缩的数字视频;
传输困难 : 1 兆的带宽传输一秒的数字视频需要大约 4 分钟;
⼀个1920x1080分辨率的视频,每帧包含 约207万个像素,如果每个像素使⽤24位(8位/通道)⾊彩深度,那么单帧图像的数据量就 超过6 MB。当帧率达到30帧/秒时,仅视频部分每秒产⽣的数据量就⾼达180多 MB,⼀分钟的 视频数据量将超过11 GB。⾳频数据虽然相对较⼩,但未经压缩的PCM(脉冲编码调制)⾳ 频,以48 kHz采样率、16位位深、双声道计算,每分钟的数据量也超过10 MB。
1920x1080x30x24 = 1492992000bits/8 ≈ 186MB /s
2、压缩的核心目标:质量、码率与复杂度的权衡
音视频压缩编码的核心目标,是在可接受的计算资源消耗内,实现尽可能高的压缩比,同时保证重建后的音视频质量。主要涉及三个关键指标:
码率 (Rate):单位时间内处理的数据量,直接影响文件大小和传输带宽占用
失真 (Distortion):压缩后与原始信号的差异程度,衡量重建质量的核心指标
复杂度 (Complexity):编码解码所需的计算资源,包括CPU/GPU处理能力和内存占用
3、有损与无损压缩
|
特性 |
无损压缩 (Lossless) |
有损压缩 (Lossy) |
|---|---|---|
|
数据还原 |
完全还原,与原始数据一致 |
无法完全还原,存在信息损失 |
|
压缩率 |
较低 (通常 2:1 ~ 3:1) |
非常高 (可达 10:1 / 20:1 / 更高) |
|
主要原理 |
消除统计冗余 (如霍夫曼编码) |
利用感知冗余,丢弃不敏感信息 |
|
应用场景 |
专业制作、母带处理、档案保存 |
流媒体、数字广播、消费级存储 |
4、关键术语解析
视频参数
- 分辨率 (Resolution): 视频图像的尺寸,如1920×1080,决定细节丰富程度
- 帧率 (Frame Rate): 每秒显示的帧数,如24fps、30fps,影响视频流畅度
- 码率 (Bitrate): 单位时间传输的比特数,决定文件大小和质量
- 色彩空间 (YCbCr): 亮度与色度分离,便于色度子采样压缩
音频参数
- 采样率 (Sample Rate): 每秒采样次数,如44.1kHz、48kHz,决定频率范围
- 位深 (Bit Depth): 每个采样点的量化精度,如16位、24位,决定动态范围
- 声道数 (Channels): 独立声音通道数量,如立体声、5.1环绕声
封装格式与编码标准的区别
-
编码标准 (Codec)
- 编码标准,如H.264、H.265、AAC等,定义了如何将原始的⾳视频数据进 ⾏压缩编码和解码的算法和规则。
- 关注“如何压缩内容”,关注的是数据如何被压缩以减⼩体积,以及如何被还原以供播放
-
封装格式 (Container)
- 封装格式,如MP4、MKV、AVI、FLV等,则是⼀个“容器”或“外壳”,它的作⽤是将已经编码压缩好的视频流、⾳频流、字幕、元数据等多种媒体数据按照特定的结构打包到⼀个单独的⽂件中。
- 关注"如何组织内容",封装格式负责管理这些不同流的同步、索引和存储⽅式,使得播放器能够正确地解析和播放⽂件
5、冗余类型与压缩策略
⾳视频数据压缩的本质是识别并消除音视频原始数据中的各种冗余。冗余主要分为四⼤类:空间冗余、时间冗余、感知冗余和编码冗余。针对不同类型的冗余,编码器采⽤了相应的压缩策略。
1. 空间冗余(空域冗余)
- 定义:同一帧图像中相邻像素的亮度和色度值高度相关(如大面积的蓝天或草地),导致数据重复。
- 压缩策略:
- 帧内预测编码:利用当前块周围已重构的像素预测当前块的值(如H.264中的Intra4×4或Intra8×8模式)。
- 变换编码:通过DCT(离散余弦变换)或小波变换将空间域信号转换为频域,集中能量到低频系数,量化后去除高频冗余
2. 时间冗余(时域冗余)
- 定义:视频序列中相邻帧间因运动一致性或静态背景导致的内容高度相似(如会议视频中固定的背景)。
- 压缩策略:
- 帧间预测与运动补偿:通过运动估计(ME)找到当前块在参考帧中的最佳匹配块,仅编码运动矢量和残差数据(如P帧和B帧)。
- 关键帧技术:完整传输关键帧(I帧),后续帧通过差值帧(P帧、B帧)动态补充
3. 编码冗余
- 定义:数据符号出现概率不均匀(如某些像素值或DCT系数更频繁),导致固定长度编码效率低。
- 压缩策略:
- 熵编码:采用变长编码技术,对高频符号分配短码,低频符号分配长码,如哈夫曼编码、算术编码。
- 游程编码(RLE):对连续重复的像素值用(值,长度)对表示,常用于二值图像或变换后的零系数
4. 感知冗余
- 定义:基于⼈类视觉和听觉系统的⽣理特性。⼈眼对某些细节(如⾼频信息、⾊度变化)不敏感,⼈⽿也存在掩蔽效应,即⼀个强声⾳会掩盖掉同时存在的弱声⾳。感知编码技术正是利⽤了这些特性,通过⼼理声学模型和⼼理视觉模型,去除那些对⼈感知不重要的信息。
- 压缩策略:
- 非均匀量化:对DCT高频系数粗量化,低频细量化(如JPEG的量化表)。
- 色度子采样:采用4:2:0或4:2:2格式减少色度数据量
5. 其他冗余类型
- 结构冗余:图像中存在规律性纹理(如网格),可通过分形编码压缩。
- 知识冗余:利用先验知识(如人脸结构)建立模型,仅编码参数(如模型基编码)
6、编码器中的关键技术
现代编解码器(如H.264/AVC、H.265/HEVC)采用混合编码框架,结合多种策略:
1、预测:帧内预测(空间) + 帧间预测(时间)。
帧内预测编码:
- 在同一图像帧内利用相邻像素预测当前像素
- 去除空间冗余,适用于图像和视频的I帧编码
- 现代视频编码标准如H.264/H.265支持多种帧内预测模式
帧间预测编码:
- 利用时间上相邻帧的像素预测当前帧像素
- 去除时间冗余,可获得比帧内预测更高的压缩比
- 需要帧存储器存储参考帧,采用运动补偿技术提高预测精度
2、变换:离散余弦变换(DCT)或整数变换去除空间相关性。
变换编码的核心思想是通过数学变换将图像数据从空间域转换到频率域,从而实现能量的集中和数据的压缩。这一技术基于人眼视觉特性和图像信号的统计特性,通过保留重要信息、舍弃次要信息来实现高效压缩
3、量化:有损压缩的关键步骤,控制失真与码率的平衡。
量化是信号数字化过程中的核心步骤,其本质是将连续的模拟信号或高精度的离散信号映射到有限离散值集合的过程。在音视频压缩领域,量化通过减少数据表示的精度来实现数据压缩,是压缩系统中主要的有损压缩环节。
在音视频编码中,最常用的是均匀量化和非均匀量化:
均匀量化:将输入信号的动态范围均匀划分为2ⁿ等份(n为量化位数),所有量化间隔Δ相等。这种量化实现简单,适用于信号幅度分布均匀的场景,如图像平坦区域。
非均匀量化:量化间隔不等,通常对小信号采用较小量化步长,对大信号采用较大步长。这种量化更符合人眼/人耳的非线性感知特性,在语音和音频编码中应用广泛(如μ律、A律量化)
4、熵编码:进一步压缩统计冗余(如CAVLC、CABAC)
熵编码是一种基于信息论原理的无损数据压缩技术,其核心思想是利用各符号出现的概率分布为其分配不同长度的编码。

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐


所有评论(0)