音视频学习(八十六):宏块
什么是宏块Macroblock在传统的视频编码标准如 MPEG-2 或 H.264中宏块是进行预测、变换、量化和编码的基本单元。基本组成一个标准的宏块通常涵盖 16x16 个像素的亮度Luma区域以及对应的色度Chroma区域。核心逻辑视频压缩的基础是“消除冗余”。宏块的存在是为了让编码器能够针对一小块图像区域决定它是应该从上一帧移动过来的运动补偿还是应该直接描述细节帧内预测。什么是宏块划分H.264的宏块划分基本概念H.264 中一个宏块的基本尺寸为 16×16 像素亮度 Y 分量。在 YUV 4:2:0 采样格式下Y亮度16×16U色度8×8V色度8×8因此一个宏块实际包含256 个亮度像素64 个 U 色度像素64 个 V 色度像素宏块是运动估计、预测、变换、量化和熵编码的基本处理单位。宏块的分类H.264 根据编码方式的不同将宏块分为以下几类1帧内宏块Intra MB不参考其他帧只利用当前帧内的已编码像素进行预测主要用于I 帧也可出现在 P/B 帧中帧内宏块支持多种预测模式Intra 16×16整块预测Intra 4×4 / Intra 8×8更细粒度预测适合纹理复杂区域2帧间宏块Inter MB参考之前或之后的帧使用运动补偿进行预测常见于P 帧和 B 帧帧间宏块是 H.264 提高压缩率的核心。3Skip 宏块特殊的帧间宏块不传输残差和运动向量解码器可直接推导在静态或低运动场景中大量出现宏块的子块划分方式H.264 的一个关键创新是宏块可以被灵活地划分为多个不同大小的子块进行预测帧间预测的宏块划分对于 Inter 宏块16×16 的宏块可以进一步划分为以下几种方式16×16不划分16×8上下两个子块8×16左右两个子块8×8四个子块而8×8 子块还可以继续细分为8×44×84×4最小可到4×4的运动补偿块。这种多层次划分方式使得编码器能够对平坦区域使用大块减少码率对运动复杂或边缘区域使用小块提高预测精度帧内预测的宏块划分帧内预测主要分为Intra 16×16Intra 8×8High ProfileIntra 4×4小块帧内预测可以更好地适应细节纹理锐利边缘高频信息宏块在编码流程中的位置一个宏块在 H.264 编码流程中依次经历宏块类型判定Intra / Inter / Skip宏块划分方式选择帧内或帧间预测计算残差整数变换4×4 / 8×8量化熵编码CAVLC / CABACH.265的宏块划分CTUCTU的概念在 H.264/AVC 中视频编码的基本处理单元是宏块MacroblockMB固定大小为16×16 像素。这种固定尺寸在早期分辨率下尚可接受但随着高清1080p乃至超高清4K、8K视频的普及编码效率和灵活性逐渐成为瓶颈。H.265/HEVC 引入了全新的块结构体系用编码树单元Coding Tree UnitCTU取代传统宏块作为编码的最基本顶层单元。CTU 是 H.265 提升压缩效率、支持超高清编码的核心设计之一。CTU 的基本结构与尺寸CTU 的尺寸不再固定支持以下几种大小64×64最常用、默认32×3216×16编码器可根据配置或视频特性选择 CTU 的最大尺寸。实际应用中64×64 CTU 是主流选择尤其适用于高分辨率视频。CTU 是编码结构的“根节点”后续所有子块划分都基于 CTU 进行。CTU 包含的三个核心单元一个 CTU 在逻辑上包含三类单元编码单元CU, Coding Unit预测单元PU, Prediction Unit变换单元TU, Transform Unit它们通过树状结构四叉树进行层级划分各司其职。CU编码单元的树状划分1. 四叉树划分机制CTU 通过四叉树Quadtree递归划分为多个 CU。每一次划分当前 CU 被分成 4 个等大小子 CU。例如一个 64×64 的 CTU 可以这样划分不划分1 个 64×64 CU划分一次4 个 32×32 CU再划分16 个 16×16 CU继续划分64 个 8×8 CU最小 CU最小 CU 通常为8×8也可配置为 16×16。2. CU 的作用CU 是编码决策的核心单元主要决定是否继续划分使用帧内预测还是帧间预测参考帧选择运动估计模式编码器会根据率失真优化RDO在不同 CU 划分方案中选择最优结构。PU预测单元的灵活划分1. PU 的功能PU 决定预测方式与预测区域形状主要服务于帧内预测Intra帧间预测InterPU 并不直接决定编码结构而是描述预测行为。2. PU 划分模式在一个 CU 内PU 可采用多种形状例如对称划分2N×2NN×2N2N×N非对称划分AMP2N×nU / 2N×nDnL×2N / nR×2N这些灵活的 PU 形状可以更精准地匹配物体边缘和运动方向显著提升运动补偿精度。TU变换单元的自适应设计1. TU 的作用TU 决定残差的变换与量化方式对应传统 DCT/IDCT 处理流程。2. TU 的划分方式TU 同样采用四叉树结构Residual Quadtree, RQT最大 TU32×32最小 TU4×4TU 的划分可以与 CU、PU 不一致使得平坦区域使用大变换块、细节区域使用小变换块从而提高能量集中度和编码效率。CTU 划分带来的优势1. 对高分辨率视频更友好大 CTU 能覆盖更大平坦区域减少块边界提高压缩效率降低编码开销2. 更强的自适应能力CU 负责结构决策PU 负责预测模式TU 负责变换精度三者解耦使编码更灵活。3. 明显提升压缩性能相比 H.264HEVC 在相同画质下码率降低约40%~50%对 4K/8K 视频优势尤为明显H.265 通过引入 CTU 及其多层级划分结构彻底打破了 H.264 固定宏块尺寸的限制。CTU CU PU TU 的层次化设计使编码器能够在空间预测、时间预测和频域变换三个维度进行精细优化。这种结构是 HEVC 能够高效支持超高清和复杂视频内容的关键基础。宏块/CTU 划分的具体流程无论是 H.264 的宏块分割还是 H.265 的四叉树递归其核心流程都可以概括为以下四个阶段第一阶段初始化与预分析编码器首先读入当前原始图像帧并将其划分为固定大小的网格H.264 为 16x16H.265 为 64x64。计算纹理复杂度编码器会初步计算该区域的方差。如果方差很小区域平坦编码器会倾向于不划分如果方差很大则预判需要细分。第二阶段递归搜索与模式尝试这是最耗费计算资源的阶段。以 H.265 为例流程如下从最大尺寸开始首先尝试以 64x64 作为编码单元CU。计算代价计算该尺寸下的率失真代价RD Cost。公式参考J D λ x R其中 J 是代价D 是失真R 是码率λ 是拉格朗日乘子。四叉树拆分将 64x64 拆分为四个 32x32 的块对每一个子块重复计算模式帧内/帧间和代价。继续向下递归直到达到最小限制如 8x8 或代价不再减小。第三阶段自底向上的最优路径选择当所有可能的划分组合都计算完代价后编码器进行“剪枝”比对比较“一个 32x32 块的代价”与“四个 16x16 子块代价之和”。如果拆分后的总代价更小则保留拆分结果否则合并回大块。第四阶段确定最终划分并写入码流最终确定的划分结构会被编码成一系列划分标志位Split Flags。解码器读取这些 0 和 1就能完全还原出编码器当时的拆分形状。宏块划分要实现的功能宏块划分不仅仅是为了把图切碎它承载了视频压缩中四个关键的任务功能1. 实现自适应预测Adaptive Prediction功能描述不同的图像内容需要不同的预测策略。意义在一个宏块内如果左半边是静态背景右半边是运动物体通过划分左半边可以采用**跳过模式Skip Mode*不花码率而右半边采用*运动补偿。这种灵活分配的能力是压缩高动态视频的基础。2. 精准匹配运动矢量MV Precision功能描述宏块划分越细运动矢量MV的粒度就越细。意义对于旋转、缩放或细微颤动的物体大块无法精确描述其位移。细小划分如4×44 \times 44×4能为每个微小区域提供独立的运动矢量极大减小了预测后的残差Residual从而节省了传输残差所需的比特。3. 优化变换与量化Transform Efficiency功能描述划分直接影响变换单元TU的大小。意义*大 TU适合平滑区域能将能量集中在极少数低频系数上压缩率极高。小 TU适合高频细节如文字边缘、树叶能防止量化误差扩散有效抑制“蚊式噪声”和“环状效应”。4. 码率控制与缓冲区平衡功能描述动态调整划分深度以满足带宽限制。意义当网络带宽下降时编码器会强制减少划分深度多用大块虽然牺牲了一部分细节但保证了视频的流畅度实现了码率自适应的功能。

相关新闻

强烈安利!本科生毕业论文必备TOP8 AI论文网站测评

强烈安利!本科生毕业论文必备TOP8 AI论文网站测评

2026/7/8 21:57:02 阅读更多 →
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 43--添加allure测试报告显示信息和其他封装方法

使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 43--添加allure测试报告显示信息和其他封装方法

2026/7/3 21:00:31 阅读更多 →
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 44--Pytest框架钩子函数

使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 44--Pytest框架钩子函数

2026/7/7 22:24:40 阅读更多 →

最新新闻

CentOS 7 升级 GCC 12.2.0 与 Make 4.4:源码编译 3 小时避坑与性能对比

CentOS 7 升级 GCC 12.2.0 与 Make 4.4:源码编译 3 小时避坑与性能对比

CentOS 7 升级 GCC 12.2.0 与 Make 4.4:源码编译 3 小时避坑与性能对比 1. 为什么需要升级 GCC 和 Make? 在 CentOS 7 的默认软件仓库中,GCC 版本停留在 4.8.5,Make 版本为 3.82。这两个工具作为 Linux 生态中最基础也最重要的开…

2026/7/8 21:57:39 阅读更多 →
手工底料火锅实测测评|理性避坑科学选型指南

手工底料火锅实测测评|理性避坑科学选型指南

一、引言:手工底料火锅行业现存痛点川渝牛油火锅赛道持续扩容,2026年国内火锅市场规模突破6200亿元,其中主打手工炒制火锅底料门店增速达27%,成为餐饮细分热门赛道。伴随行业升温,消费乱象同步凸显:市面仅2…

2026/7/8 21:57:39 阅读更多 →
浏览器音乐解锁工具:3分钟解决加密音乐播放难题

浏览器音乐解锁工具:3分钟解决加密音乐播放难题

浏览器音乐解锁工具:3分钟解决加密音乐播放难题 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: https://git…

2026/7/8 21:55:38 阅读更多 →
ESXi 8.0U3b macOS Unlocker 配置:3步解锁非Mac硬件安装macOS 13 Ventura

ESXi 8.0U3b macOS Unlocker 配置:3步解锁非Mac硬件安装macOS 13 Ventura

ESXi 8.0U3b 非Mac硬件解锁指南:3步实现macOS Ventura全功能虚拟化 1. 环境准备与核心原理剖析 在非Apple硬件上运行macOS虚拟机一直是开发者和运维人员的痛点需求。随着ESXi 8.0U3b的发布,配合新版Unlocker工具,这一需求终于有了成熟的解决…

2026/7/8 21:55:38 阅读更多 →
告别限速烦恼:8大网盘直链下载助手的完整使用指南

告别限速烦恼:8大网盘直链下载助手的完整使用指南

告别限速烦恼:8大网盘直链下载助手的完整使用指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘…

2026/7/8 21:51:34 阅读更多 →
Windows 11 下 PyTorch GPU 环境排错:CUDA 12.4 与 cuDNN 9.2 兼容性验证 3 步法

Windows 11 下 PyTorch GPU 环境排错:CUDA 12.4 与 cuDNN 9.2 兼容性验证 3 步法

Windows 11 下 PyTorch GPU 环境排错指南:CUDA 12.4 与 cuDNN 9.2 兼容性深度验证当你在 Windows 11 上配置 PyTorch GPU 环境时,最令人沮丧的莫过于看到torch.cuda.is_available()返回 False。这种情况往往意味着你的 CUDA、cuDNN 和 PyTorch 版本之间存…

2026/7/8 21:51:34 阅读更多 →

日新闻

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: …

2026/7/8 0:00:48 阅读更多 →
MyBatis 批量操作深度优化——从 N+1 到批处理的全路径

MyBatis 批量操作深度优化——从 N+1 到批处理的全路径

MyBatis 批量操作深度优化——从 N1 到批处理的全路径 一、从"功能正确"到"性能可接受"——MyBatis 批量操作的三段式进化 MyBatis 在日常增删改查场景中几乎是无感的——实体映射直观、SQL 控制灵活。但当数据量从千级上升到十万级、百万级,许…

2026/7/8 0:00:48 阅读更多 →
工业负载控制方案:TPD2015FN与PIC18F45K22应用解析

工业负载控制方案:TPD2015FN与PIC18F45K22应用解析

1. 工业负载控制方案概述在工业自动化、电机驱动和照明控制等高需求场景中,可靠地控制电感和电阻负载是核心挑战之一。TPD2015FN作为东芝的8通道高端智能功率开关IC,配合PIC18F45K22微控制器,能够构建一套稳定、高效的负载控制系统。这套组合…

2026/7/8 0:02:48 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/8 16:14:06 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/8 16:59:55 阅读更多 →

月新闻