2.2 图像组织与并行解码单元


2.2 图像组织与并行解码单元

本节摘要:2.1节看的是单个CTU内部怎么切,本节把镜头拉远——一帧图像在标准眼里如何分层组织:条带、子图、CTU行各是什么、为什么这么分;VPDU(虚拟流水线数据单元)如何充当"硬件流水线的行车道"。读完你会理解,VVC的图像组织是压缩逻辑与芯片流水线之间的一份和平协议。

上一节结尾留了一个问题:QTMT切出的块千姿百态,解码芯片的流水线却是等节拍前进的,两者怎么相安无事?答案就在本节——标准用一组"组织单位"给混乱的块定了交通规则。

图像组织:四层结构

一帧图像在VVC里自上而下分为四层组织结构,每层服务不同目的:

层级 单位 作用 关键性质
图像级 子图 subpicture 独立解码的矩形区域 可拼可拆,支持一码流多用途
图像级 条带 slice CTU的连续序列 条带间解码独立,是熵编码同步的边界
行级 CTU行 一行CTU 环路滤波并行的主要依据
块级 CTU / CU 2.1节的划分树 压缩决策的基本单位

条带是老朋友,从H.26x时代就有:把一帧切成若干段CTU序列,各段独立熵编码,一段出错不连累下一段。VVC的条带不再要求空间连续对齐矩形——它更像"沿着光栅扫描顺序装车",语法更省。

子图是VVC把HEVC的tile概念升级后的产物:一个矩形区域的CTU集合,可以整体独立解码,也能单独从码流里提取出来用。这个能力直接支撑两类应用:一是全景视频视口传输(只解用户看的那块,第7.2节会接上);二是多画面合一(把四路监控拼进一帧,各自是子图,取出即还原单路)。

CTU行是并行环路滤波的依据:去块滤波要跨块看邻居,ALF要等一片区域重建完才能启动——以CTU行为单位错峰流水,是第6章所有滤波器能并行的前提。

02-02-fig01

VPDU:硬件流水线的行车道

**虚拟流水线数据单元(VPDU)**是VVC为硬件解码专门引入的概念,定义是:解码一个CTU行内的数据时,解码器所触及的最大图像区域。规定VPDU尺寸(典型为128×128或CTU尺寸相关)后,任何块的预测、插值、滤波所引用的参考像素都不得越出其VPDU车道。

为什么这至关重要?看硬件解码器的视角:

软件解码器视角: 硬件解码器视角: "给我一帧,我慢慢算" "我是一条等节拍的流水线, 每个时钟周期必须搬走固定量的数据" 软件可以动态分配内存、 硬件的行缓冲(line buffer)容量固定, 随时回头查任何像素; 必须预先知道"最坏情况下要缓存多少行"。 VPDU的作用:把"最坏情况"钉死。 若允许一个块引用任意远的像素, 行缓冲需求不可控,芯片面积与功耗直接爆炸。

具体到工具上的约束效应:QTMT允许的长条块如果无限细长,插值与滤波要同时挂住好几行的数据;VPDU约束实际上给"块的纵横比"和"跨块参考范围"划了红线。你在2.1节看到的某些"看似多余"的划分限制(比如对TT居中块尺寸的下限、对最小块的限制),很大程度上就是VPDU约束的投影——标准文本的每条"不许",背后都站着一位硬件工程师

⚠️ 常见误读:VPDU不是码流里的语法元素,解码比特流时你"看不到"它。它是标准对工具组合施加的隐含约束,只有做硬件实现时才会真切感到它的存在。这也解释了为什么纯软件背景的工程师初读VVC文本时容易忽略这一章。

三类并行机制对照

把本章的并行工具放在一起对照,各自的适用场景就清楚了:

机制 粒度 解码独立开销 典型用途
条带 CTU序列 每条带重置熵编码器 抗误码、熵解码并行
子图 矩形区域 边界约束加提取信令 视口传输、多画面、超低延迟
VPDU 隐含约束 无显式语法,约束工具 硬件流水线设计依据

三者不是竞争关系,是同一帧图像在不同视角下的切法:条带对熵编码器负责,子图对应用层负责,VPDU对硅片负责。VVC相对HEVC在这层的最大进步,是把这些机制统一进主档语法,不再依赖后续扩展打补丁。

一个综合案例:超低延迟直播怎么用本章知识

设想一场云端渲染的电竞直播,要求端到端延迟压到极限:

  1. 编码端把每帧切成多个子图,按行优先序编码发送——接收端不必等整帧到齐,收到一行子图即可开始解码显示(这比"整帧为单位"的传统方案直接砍掉一帧级延迟);
  2. 子图内部用条带进一步分段,熵解码多线程并行,且网络抖动丢包时只损坏局部;
  3. 解码芯片按VPDU车道设计流水线,保证每个时钟节拍的处理量可预测,4K多路并行而缓冲不爆;
  4. 编码器在划分搜索时(2.1节)已经知道哪些块会触碰子图边界,RD决策里直接惩罚跨界方案——压缩自由与并行纪律在编码端就完成谈判。

这个案例把本章三个主角全部推上场。裁缝铺的说法是:案子(图像组织)怎么摆,决定了多位裁缝(并行流水线)能不能同时开工而互不抢布料。

两问两答

问:条带和子图都切图像,到底该用谁?
看目的。为抗误码与熵解码并行——条带(语法最省);为应用层的独立提取(视口、多画面)——子图(矩形规整、可寻址);两者可叠加使用(子图内部再切条带)。经验法则:面向"解码器内部"用条带,面向"应用语义"用子图,一句话分家。

问:VPDU约束会不会限制压缩效率?
会,且是故意的。约束划定的边界处,划分与预测的自由度受限(编码器RD搜索自动惩罚跨界方案),压缩上小有让步;换来的是解码芯片行缓冲的确定性预算。这是"压缩效率"与"实现成本"之间一处明码标价的交易——标准设计里这类刻意的效率让步,读懂它们比读新增工具更能看出工程智慧。

本节要点回顾

  • 四层组织:子图(矩形独立区)→ 条带(熵编码段)→ CTU行(滤波流水)→ CU(压缩基本单位),一层服务一类并行需求;
  • VPDU是隐含约束:不是语法元素,是"解码触及的最大图像区域"上限,硬件行缓冲的设计依据;
  • 标准文本的"不许"来自硬件:2.1节的划分限制多处是VPDU约束的投影;
  • 子图是VVC的系统级新能力:视口传输、多画面合一、行级低延迟三种应用直接受益;
  • 压缩自由与流水线纪律的谈判在编码端完成:RD搜索惩罚跨界方案,解码端只管按车道行驶。

作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U