手机号查询QQ号:企业级身份核验工具的技术实现与应用拓展

核心内容摘要

C++20模板实战tuple展开入参
Yi-Coder-1.5B入门指南:从零开始部署你的第一个AI编程助手

OFA-VE系统快速入门:3分钟学会图像语义验证技术

什么是宏块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编码单元的树状划分

四叉树划分机制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。

CU 的作用CU 是编码决策的核心单元主要决定是否继续划分使用帧内预测还是帧间预测参考帧选择运动估计模式编码器会根据率失真优化RDO在不同 CU 划分方案中选择最优结构。

PU预测单元的灵活划分

PU 的功能PU 决定预测方式与预测区域形状主要服务于帧内预测Intra帧间预测InterPU 并不直接决定编码结构而是描述预测行为。

PU 划分模式在一个 CU 内PU 可采用多种形状例如对称划分2N×2NN×2N2N×N非对称划分AMP2N×nU / 2N×nDnL×2N / nR×2N这些灵活的 PU 形状可以更精准地匹配物体边缘和运动方向显著提升运动补偿精度。

TU变换单元的自适应设计

TU 的作用TU 决定残差的变换与量化方式对应传统 DCT/IDCT 处理流程。

TU 的划分方式TU 同样采用四叉树结构Residual Quadtree, RQT最大 TU32×32最小 TU4×4TU 的划分可以与 CU、PU 不一致使得平坦区域使用大变换块、细节区域使用小变换块从而提高能量集中度和编码效率。

CTU 划分带来的优势

对高分辨率视频更友好大 CTU 能覆盖更大平坦区域减少块边界提高压缩效率降低编码开销

更强的自适应能力CU 负责结构决策PU 负责预测模式TU 负责变换精度三者解耦使编码更灵活。

明显提升压缩性能相比 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就能完全还原出编码器当时的拆分形状。

宏块划分要实现的功能宏块划分不仅仅是为了把图切碎它承载了视频压缩中四个关键的任务功能

实现自适应预测Adaptive Prediction功能描述不同的图像内容需要不同的预测策略。

意义在一个宏块内如果左半边是静态背景右半边是运动物体通过划分左半边可以采用**跳过模式Skip Mode*不花码率而右半边采用*运动补偿。

这种灵活分配的能力是压缩高动态视频的基础。

精准匹配运动矢量MV Precision功能描述宏块划分越细运动矢量MV的粒度就越细。

意义对于旋转、缩放或细微颤动的物体大块无法精确描述其位移。

细小划分如4×44 \times 44×4能为每个微小区域提供独立的运动矢量极大减小了预测后的残差Residual从而节省了传输残差所需的比特。

优化变换与量化Transform Efficiency功能描述划分直接影响变换单元TU的大小。

意义*大 TU适合平滑区域能将能量集中在极少数低频系数上压缩率极高。

小 TU适合高频细节如文字边缘、树叶能防止量化误差扩散有效抑制“蚊式噪声”和“环状效应”。

码率控制与缓冲区平衡功能描述动态调整划分深度以满足带宽限制。

意义当网络带宽下降时编码器会强制减少划分深度多用大块虽然牺牲了一部分细节但保证了视频的流畅度实现了码率自适应的功能。

火影忍者奖励网站最新版本-火影忍者奖励网站最新版本应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123