news 2026/4/16 11:00:14

音视频学习(七十二):视频压缩:分块与预处理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
音视频学习(七十二):视频压缩:分块与预处理

分块与预处理是视频压缩(编码)流程的起点,它的目标是将原始的、高冗余的视频数据转换成适合高效压缩的格式和基本处理单元。这一阶段的工作质量直接影响后续运动估计、变换编码和量化等步骤的效率和最终的压缩比与图像质量。

预处理的核心目标与作用

预处理阶段主要完成两项任务:去除人眼不敏感的数据冗余建立后续处理的粒度

目标具体作用
色彩空间优化将冗余度高的RGB格式转换为YUV格式,为色度信息降采样提供基础,消除部分视觉冗余。
数据降采样降低色度数据的分辨率,利用人眼对亮度比色度更敏感的生理特性,减少数据量。
确定处理单元将视频帧分割为宏块或编码单元,作为运动估计和变换编码的基本处理粒度,实现并行处理。
去噪与滤镜采用预处理滤波器去除原始视频中的噪声,避免噪声在编码过程中占用宝贵的码率。

关键技术

关键技术一:色彩空间转换与色度采样

1. 色彩空间转换 (Color Space Conversion)

原始视频信号通常使用RGB(红、绿、蓝)色彩模型,这是一种面向显示的加法混色模型。在RGB模型中,三个分量都以相同的分辨率存储,但人眼对这三个分量的敏感度是不同的。

在视频压缩中,必须转换为YUVYCbCr模型:

  • Y (Luminance):亮度分量,携带了图像的灰度信息,人眼对此最敏感。
  • U/Cb 和 V/Cr (Chrominance):色度分量,携带了图像的颜色信息(蓝色和红色的差异度)。

转换:将RGB转换为YUV的数学操作确保了亮度与色度信息的解耦,这是后续降采样的基础。

2. 色度采样 (Chroma Subsampling)

由于人眼对亮度(Y)的细节比对色度(U/V或Cb/Cr)的细节更敏感,可以安全地减少色度分量的空间分辨率而不会对视觉质量造成明显影响。这种技术称为色度降采样。

主流采样格式:

格式Y:U:V 比率说明常见应用
4:4:41:1:1无降采样。Y、U、V三个分量具有相同的采样率。用于高质量编辑、数字电影制作。高清专业视频
4:2:22:1:1水平方向色度采样减半。每两个亮度采样点共享一组色度采样点。广播电视、DVD、专业编辑
4:2:04:1:1**水平和垂直方向色度采样都减半。**每四个亮度采样点(一个2x2的区域)共享一组色度采样点。这是最常见的消费级视频和网络视频格式。H.264/AVC, HEVC, MPEG-4, 网络流媒体

4:2:0 格式的原理:

对于一个 2 * 2 的宏块,有4个亮度样本(Y),但只有1个U样本和1个V样本。通过降采样,数据量理论上减少了 50%。

色度采样的优点:

  • 大幅减少数据量:4:2:0 相比 4:4:4 节省一半的原始数据,显著提高了压缩效率。
  • 不显著影响视觉质量:基于人眼的生理特性,这种损失在日常观看中难以察觉。

关键技术二:视频帧的分块处理

视频压缩的效率依赖于对局部区域(而非整帧)进行高效的预测和变换。因此,每一帧图像都需要被分割成标准化的处理单元。

1. 宏块 (Macroblock, MB)

在早期的MPEG系列标准和H.264/AVC标准中,视频帧的基本处理单元是宏块 (MB)

  • 定义:一个宏块通常是 16 * 16 像素的区域。
  • 结构:在4:2:0格式中,一个宏块包含 16 * 16 的亮度样本和 8 * 8 的U和 8 * 8 的V色度样本(因为色度是半分辨率)。
  • 用途:宏块是进行运动估计和运动补偿(消除时间冗余)以及块内预测(消除空间冗余)的基本单元。

2. 编码单元 (Coding Unit, CU)

随着更高分辨率视频(4K/8K)的出现,固定的 16 * 16 宏块不再是最优选择。在H.265/HEVCH.266/VVC等新一代标准中,引入了更灵活的编码树单元 (Coding Tree Unit, CTU)编码单元 (Coding Unit, CU)的概念。

  • CTU:类似于宏块,但尺寸可以更大,如 64 * 64 或 128 * 128。
  • CU (Coding Unit):CTU 可以根据图像内容,递归地(通过四叉树结构)分割成更小的CU,其尺寸范围可以从 64 * 64 到最小的 4 * 4。
  • 优势:
    • 自适应性:对于图像内容平坦的区域,使用大尺寸CU(如 64 * 64)可以减少编码所需的头部信息(header/overhead),提高效率。
    • 精度:对于图像细节丰富、纹理复杂的区域,使用小尺寸CU(如 8 * 8 或 4 * 4)可以提高预测和变换的精度,减少残差。

关键技术三:预处理滤波器

除了色彩转换和分块之外,在编码前,还可以应用各种预处理滤波器来优化源视频,使其更适合压缩。

1. 噪声去除 (Noise Reduction)

视频源(尤其是摄像机或老旧胶片)往往包含各种噪声(如高斯噪声、椒盐噪声)。噪声本质上是高频随机信号,在压缩过程中,编码器会试图对这些随机的细节进行编码。

  • 问题:编码随机噪声会消耗大量的宝贵码率,但对人眼来说,这些噪声并无信息价值。
  • 解决方案:使用空间滤波器(如中值滤波、高斯平滑)或时域滤波器来平滑图像,去除冗余的噪声。
  • 权衡:滤波器力度过大可能去除图像真实的细节和纹理,导致图像模糊(Softening)。编码器必须在去噪保留细节之间取得平衡。

2. 去隔行扫描 (Deinterlacing)

对于标清或一些旧的高清视频源,如果采用隔行扫描 (Interlacing)方式采集(将一帧分为奇数场和偶数场),在进行现代逐行扫描(Progressive)编码之前,需要通过去隔行算法将其转换为逐行扫描格式。

总结

分块与预处理阶段的工作是为压缩算法搭建框架和提供基础数据:

  1. 通过色彩空间转换色度降采样,将数据量减少了 50% 左右,并为后续变换编码提供了更优化的数据格式。
  2. 通过分块(MB/CU),将大规模的帧处理问题分解为可以并行和自适应处理的小规模子问题。
  3. 通过预处理滤波器,提高了输入信号的质量,减少了噪声对码率的消耗。

这些经过预处理和分块的 Y、 U、V 宏块/编码单元,将作为输入,进入视频压缩的核心阶段——运动估计与补偿(消除时间冗余)和变换编码与量化(消除空间冗余),最终生成压缩的比特流。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 13:55:11

【BuildFlow 筑流】计量单位与Unitrix库技术方案

1. 概述 BuildFlow(筑流)作为专业的项目管理平台,需要一个强大、统一、可扩展的计量单位管理系统。Unitrix库应运而生,它采用矩阵化和齐次坐标的数学方法,为项目管理中的时间、长度、角度、资源等多维度度量提供统一的解决方案。 1.1 Unitrix名称意义 Unit(单位):度量…

作者头像 李华
网站建设 2026/4/15 18:41:53

【单片机毕业设计】【mcugc-mcu918】基于单片机的脉搏检测仪系统

一、基本介绍功能简介:1、通过脉搏检测模块检测脉搏,通过按键启动,10s后获取脉搏值,结束后蜂鸣器响1.5s。 2、当检测结束后,通过语音播报模块播报当前脉搏值,并提示“您的脉搏数正常”、“您的脉搏数偏高”…

作者头像 李华
网站建设 2026/4/16 10:44:08

MySQL 8.0 SQL优化黑科技,面试官都不一定知道!

MySQL 8.0 SQL优化黑科技,面试官都不一定知道! MySQL 8.0(2018年发布)带来了大批“黑科技”级优化特性,许多老面试官还停留在5.7时代,这些新特性能让查询性能飞起、索引维护零风险、统计更精准。实际生产中…

作者头像 李华
网站建设 2026/4/16 14:01:57

ComfyUI-Manager跨版本迁移终极指南:从备份到优化全流程

ComfyUI-Manager跨版本迁移终极指南:从备份到优化全流程 【免费下载链接】ComfyUI-Manager 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-Manager 面对ComfyUI-Manager版本升级带来的配置丢失、节点失效等困扰?这份完整迁移方案将带你系…

作者头像 李华
网站建设 2026/4/16 12:15:27

怎么这么多StringUtils——Apache、Spring、Hutool全面对比

怎么这么多StringUtils?Apache、Spring、Hutool全面对比 Java开发者经常吐槽:“StringUtils这么多,到底用哪个?”没错,org.apache.commons.lang3.StringUtils(Apache Commons Lang)、org.sprin…

作者头像 李华
网站建设 2026/4/16 12:34:03

模电概念复习(概念完结篇)

频率响应请看第六章引言及6.1内容●注意:本章的模型和计算过程比较复杂,不做要求,但需要了解原理和概念。 ●由于什么的存在,放大电路对不同频率的正弦呈现不同的放大能力?由于电容、电感等电抗元件以及晶体管极间电容…

作者头像 李华