x264宏块及子块划分方式

1 宏块划分方式

  一副图像(帧,非场图像,x264支持宏块级场编码,这里以帧图像为例说明)按从左到右、从上到下16x16的方式划分宏块,对于图像宽度不是16的倍数的情况,会扩展至16的倍数,然后通过sps的crop参数表示出需要裁剪的区域。

2 8x8子块的划分方式

  对于每一个宏块内部,按从左到右、从上到下8x8的方式划分8x8子块,如下图所示。

  

3 4x4子块的划分方式

  对于每一个8x8子块内部,按从左到右、从上到下4x4的方式划分4x4子块,一个完整的宏块划分4x4子块如下图所示。

  

  • 其中4x4子块0、1、2、3为第一个8x8子块
  • 其中4x4子块4、5、6、7为第二个8x8子块
  • 其中4x4子块8、9、10、11为第三个8x8子块
  • 其中4x4子块12、13、14、15为第四个8x8子块

  

转载于:https://www.cnblogs.com/oldmanlv/p/5897546.html

<think>嗯,用户这次的问题聚焦在变换单元和的区别上,而且特别提到了参考站内的三个引用。看来用户正在学习视频编码的基础结构,可能是个刚入门的学生或工程师。从ta反复对比这两个概念的行为看,ta的核心困惑应该是:为什么视频编码要设计这两层结构?它们的分工到底是什么? 注意到用户引用的材料中,[1]详细描述了的从属关系,[2]强调是基本编码单元,[3]则提到导致的效应问题。这三点其实已经暗示了答案方向:负责整体组织,变换单元负责局部优化。不过用户的上次提问中我已经详细解释过变换单元,这次需要更侧重对比关系。 用户可能没意识到的是:诞生于早期标准(如H.264),而变换单元是新一代标准(如HEVC)为提升效率引入的细分结构。这个历史演进维度值得补充。另外,ta似乎对“为什么不能只用”存在疑问——这需要解释尺寸自适应对压缩率的影响。 安全方面要注意:所有技术描述必须严格遵循H.264/HEVC标准文档,避免个人臆测。特别是变换单元尺寸范围(4x4到32x32)这类数据必须准确。 最后生成的对比表格很关键,要把抽象概念具象化。考虑到用户可能是视觉学习者,用“管理区域/施工区域”的类比可能比纯技术语言更友好。那个星形标记的结论句要突出显示,这可能是用户最需要的takeaway。</think>在视频编码中,**(Macroblock)** 和**变换单元(Transform Unit, TU)** 是层级化的编码结构,二者在功能、层级和粒度上存在本质区别。以下是详细对比: --- ### 一、核心区别总结 | **特性** | **(Macroblock)** | **变换单元(TU)** | |------------------|-------------------------------------------|----------------------------------------| | **定位** | **编码的基本单元**(H.264核心结构) | **变换操作的最小单元**(HEVC/VVC引入) | | **主要功能** | 组织预测(帧内/帧间)、运动补偿、重构流程 | 执行空间域→频率域的变换(如DCT) | | **层级关系** | 上级结构(包含多个/TU) | 或编码单元(CU)的结构 | | **尺寸灵活性** | 固定为$16×16$像素(H.264) | 动态划分($4×4$至$32×32$等) | | **技术目标** | 管理预测与重构流程 | 优化频域压缩效率 | --- ### 二、详细功能与结构差异 #### 1. **(Macroblock)** - **核心作用**: 作为视频帧的**基本编码单元**,负责: - 划分图像为$16×16$像素(亮度)及对应色度(如$8×8$)[^2] - 决策**预测模式**(帧内/帧间) - 执行**运动补偿**(帧间预测)或**空间预测**(帧内预测) - 管理**重构流程**(预测残差 + 重建数据) - **结构组成**(以H.264为例): ```mermaid graph LR A[] --> B[16x16亮度] A --> C[8x8色度Cb] A --> D[8x8色度Cr] B --> E[4个8x8] // 可进一步划分 ``` #### 2. **变换单元(TU)** - **核心作用**: 在或编码单元(CU)内部,**执行变换与量化**: - 将预测残差从空间域转换到频域(如DCT变换) - 通过量化压缩高频系数,减少数据冗余[^1] - **关键特性**: - **尺寸自适应**:根据纹理复杂度动态选择尺寸(平坦区域用$32×32$,边缘区域用$4×4$) - **层级从属**:隶属于CU(HEVC)或(H.264) - **数学操作**: $$C(u,v) = \sum_{x=0}^{N-1} \sum_{y=0}^{N-1} f(x,y) \cdot \cos\left[\frac{(2x+1)u\pi}{2N}\right] \cos\left[\frac{(2y+1)v\pi}{2N}\right]$$ 其中$N$为TU尺寸,$f(x,y)$为残差数据。 --- ### 三、协同工作流程示例 以**H.264编码流程**为例: 1. **划分**:将一帧图像分割为$16×16$[^2]。 2. **预测**:内进行帧内/帧间预测,生成残差。 3. **变换**:残差被划分为****(如$4×4$或$8×8$),每个作为**TU执行DCT变换**。 4. **量化与编码**:变换系数经量化、扫描后熵编码。 5. **重构**:通过反量化、反变换重建残差,叠加预测值生成重建。 > **关键点**:在H.264中,**本质是TU的前身**;而HEVC/VVC中,TU成为独立于的概念,直接隶属于CU。 --- ### 四、技术演进对比 | **标准** | **角色** | **TU角色** | **核心改进** | |----------|----------------------------|-------------------------------------|----------------------------------| | **H.264** | 核心编码单元 | 隐含于(如$4×4$/ $8×8$) | 引入级变换提升灵活性 | | **HEVC** | 被**编码单元(CU)** 取代 | 明确作为CU的结构,支持$32×32$大尺寸 | 大尺寸TU提升平坦区域压缩率[^1] | | **VVC** | 完全消失 | 支持多形状(矩形、非对称划分) | 更精细的频域能量集中控制 | > **结论**:是传统编码的**管理单元**,而TU是频域压缩的**执行单元**。新一代标准通过解耦二者,实现更精细的压缩控制[^1][^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值