H.264宏块(Macroblock)概念(运动估计、变换编码、环路滤波)

参考文章:音视频高手课系列5-h264编码基础(宏块原理)

参考文章:切片slice与宏块,运动矢量

文章目录

  • 使用videoEye分析视频宏块示例
  • H.264宏块概念
    • 1. 宏块的定义
    • 2. 运动估计
    • 3. 变换编码
    • 4. 环路滤波
    • 5. 注意:宏块的概念既适用于帧内编码,也适用于帧间编码
      • 宏块是为了解决帧内压缩问题,还是帧间压缩问题?
    • 参考文献

使用videoEye分析视频宏块示例

使用videoEye软件,导入视频,点击单帧解码分析:

在这里插入图片描述

量化参数分析:

在这里插入图片描述

宏块类型分析:

在这里插入图片描述

H.264宏块概念

H.264也被称为MPEG-4第10部分,是一种广泛使用的视频压缩标准。这个标准由ITU-T视频编码专家组(VCEG)与ISO/IEC移动专家组(MPEG)联合开发,因此也被称为AVC(Advanced Video Coding,高级视频编码)。H.264视频编码主要用于高清电视广播、视频会议、流媒体等应用场景。

在H.264中,宏块(Macroblock)是一个重要的基本单元。它涉及到许多关键技术和算法,包括运动估计、变换编码、环路滤波等。接下来,我们将深入探讨H.264中的宏块概念。

1. 宏块的定义

H.264中的宏块(Macroblock)通常是指16x16像素的图像区域。每个宏块都可以独立地进行运动估计、变换编码、环路滤波等处理。H.264的编解码器会逐个宏块地处理整个视频帧。

// 一个简单的表示宏块的结构
typedef struct {int width;   // 宏块的宽度int height;  // 宏块的高度int data[16][16];  // 宏块的像素数据
} Macroblock;

2. 运动估计

在视频序列中,相邻的帧之间通常存在大量的空间冗余信息。为了消除这些冗余信息,H.264采用了运动估计技术。具体来说,对于当前帧的一个宏块,编码器会在参考帧中找到一个最匹配的区域,然后只需要记录下这个区域的位置偏移和残差信息,就可以有效地压缩视频数据。

3. 变换编码

变换编码是H.264中另一个重要的技术。对于每个宏块,编码器会先进行DCT(Discrete Cosine Transform,离散余弦变换)或者整数变换,将像素值转化为频域系数,然后再通过量化、熵编码等步骤进一步压缩数据。

4. 环路滤波

为了减小压缩过程中的块效应,H.264引入了环路滤波技术。对于每个宏块,解码器会在IDCT(Inverse Discrete Cosine Transform,离散余弦反变换)之后,根据边界的强度和平滑度,选择性地对边界进行滤波处理。

5. 注意:宏块的概念既适用于帧内编码,也适用于帧间编码

在视频压缩中,一个帧(Frame)通常被划分为若干个宏块(Macroblock)。每个宏块通常包含16x16个像素点,这些像素点共享某些参数,例如运动矢量和编码模式等。

  • 对于帧内编码(I-frame),每个宏块是独立进行编码的,与其他宏块无关。这就像我们在处理一张静态图片一样,将图片分割为多个小区域(即宏块),然后对每个小区域进行独立编码。

  • 对于帧间编码(P-frame和B-frame),则需要利用视频序列中时间上的相关性,通过预测当前宏块与参考帧中的宏块之间的差异来实现编码。这种方式可以大大减少冗余信息,从而提高压缩效率。

宏块是为了解决帧内压缩问题,还是帧间压缩问题?

宏块(Macroblock)的概念用于解决视频压缩中的帧内压缩和帧间压缩问题。无论是在帧内编码还是帧间编码中,宏块都扮演着重要的角色。

  1. 帧内压缩:帧内压缩主要处理的是单一帧内部的数据冗余。每一帧被划分为若干个宏块,然后对每个宏块独立进行DCT(离散余弦变换)和量化等操作,从而实现数据的压缩。由于每个宏块是独立编码的,因此帧内编码也可以看作是一种基于宏块的空间压缩技术。

  2. 帧间压缩:帧间压缩则是利用连续帧之间的时间相关性来减少数据冗余。通过预测当前宏块与参考帧中的宏块之间的差异(运动估计),并只编码这种差异(运动补偿),从而实现数据的压缩。帧间编码也可以看作是一种基于宏块的时间压缩技术。

参考文献

  1. Wiegand, T., Sullivan, G. J., Bjontegaard, G., & Luthra, A. (2003). Overview of the H. 264/AVC video coding standard. IEEE Transactions on circuits and systems for video technology, 13(7), 560-576.
  2. Richardson, Iain E. G. “The H.264 advanced video compression standard.” John Wiley & Sons, 2010.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/580910.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Java Swing的图书管理系统

一、项目总体架构 本项目基于Java Swing框架,数据库采用的是MySQL。项目文件夹如下: 二、项目截图 1.登录和注册界面 2.用户界面 3.管理员管理图书类别 4.管理员管理书籍 5.管理员管理用户 项目总体包括源代码和课程论文,需要源码的…

通过MobaXterm远程连接Anolis

目录 前言: 一.设置ip 二.远程连接 前言: 小编已经阐述了如何安装Anolis系统,如果有不了解的小伙伴可以查看这一篇博客Anolis安装 这篇博客将会讲述如何远程连接Anolis系统。各位看官拿好板凳! 一.设置ip 打开网卡所在位…

西门子PLC通过PROFINET协议与多功能电表通讯

西门子PLC通过PROFINET协议与多功能电表通讯 项目要求 西门子S71200PLC需要通过PROFINET协议和多功能电表通讯,读取线电压、相电压、线电流、相电流、有功功率、无功功率等参数。 项目实施 采用网关NET90-PN-MBT(以下简称“网关”)&#…

怎么提取视频中的背景音乐?

当我们在刷视频的时候,有时候听到一个背景音乐很好听,但是又不知道歌名,比如英语歌,这个时候我们很难找到这首歌,相信有很多朋友会遇到这样的问题,不知道怎么弄,下面小编给大家推荐一些方法帮助…

Pytorch从零开始实战14

Pytorch从零开始实战——DenseNet SENet算法实战 本系列来源于365天深度学习训练营 原作者K同学 文章目录 Pytorch从零开始实战——DenseNet SENet算法实战环境准备数据集模型选择开始训练可视化总结 环境准备 本文基于Jupyter notebook,使用Python3.8&#x…

亿赛通电子文档安全管理系统 linkfilterservice 未授权漏洞

产品简介 亿赛通电子文档安全管理系统,(简称:CDG)是一款电子文档安全加密软件,该系统利用驱动层透明加密技术,通过对电子文档的加密保护,防止内部员工泄密和外部人员非法窃取企业核心重要数据资…

Spring企业开发核心框架

文章目录 Spring企业开发核心框架一、框架前言1. 总体技术体系2. 框架概念和理解 二、Spring Framework简介1. Spring 和 SpringFramework2. SpringFramework主要功能模块3. SpringFramework 主要优势 三、Spring IoC 容器概念1. 组件和组件管理概念2. Spring IoC容器和容器实现…

ALS-运动系统解构

角色握持 角色蓝图:将物体绑在手上 动作蓝图: 将握持动画截取一帧(explicit time时间写好) 角色替换 在原人物模型下面加一个骨骼体(先不用添加模型),重命名为bodymesh AI使用流程 新建一…

品牌如何在线上打造“社交货币”?媒介盒子揭秘

品牌的社交货币,是品牌与消费者的共识身份铸造器。竹筒奶茶、Keep奖牌这类的实体产品作为社交货币,每每能够引爆社交平台,那么品牌能否通过线上平台打造“社交货币”呢?接下来就让媒介盒子和大家聊聊。 一、社交货币是什么 社交货…

6.Nacos

1.单机部署 1.1 官网 https://nacos.io/zh-cn/index.html https://github.com/alibaba/Nacos 1.2.版本说明 https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E 1.3.下载地址 https://github.com/alibaba/nacos/releases/tag/2.2.…

小区跑腿服务

社区跑腿服务是指在社区范围内为居民提供各种便利的服务,包括购物代劳、快递代取、家政服务等。 这种服务的出现,满足了居民生活中诸多需求,受到了广泛的欢迎和认可。 首先,社区跑腿服务方便了居民的日常生活。 居民无需亲自前…

克魔助手工具下载、注册和登录指南

下载安装克魔助手 摘要 本文介绍了如何下载安装克魔助手工具,以及注册和登录流程。通过简单的步骤,用户可以轻松获取并使用该工具,为后续的手机应用管理操作做好准备。 引言 克魔助手是一款免费的手机管理工具,通过该工具用户…

文章解读与完整程序——《考虑“源-荷-储”协同互动的主动配电网优化调度研究》

摘要:伴随智能电网的建设和清洁能源的开发利用,配电网中的负荷类型呈现多元化发展,分布式电源、可控负荷、储能等资源的增加让单向潮流的传统配电网逐渐向双向潮流的主动配电网结构转变。在能源结构转变的同时,清洁能源自身的随机性和波动性给配电网带来了更大的调峰…

2023.12.25 关于 Redis 数据类型 Hash 常用命令、内部编码、应用场景

目录 Hash 数据类型 Hash 操作命令 HSET HGET HEXISTS HDEL HKEYS HVALS HGETALL HMGET HLEN HSETNX HINCRBY HINCRBYFLOAT HSTRLEN Hash 编码方式 理解什么是压缩 Hash 实际应用 Cache 缓存 Hash 数据类型 整体上来说 Redis 是键值对结构,其中 …

使用docker创建自己的Android编译容器

文章目录 背景步骤1.创建Dockerfile2.编写Dockerfile指令3.编译4.使用 背景 每次拿到新机器或者系统重装,最麻烦的就是各种环境配置,最近学习了一下docker的知识,用dockerfile创建一个Android编译容器,这样就不用每次都吭哧吭哧的…

python 通过(三维坐标)生成(三维曲面地形图)和(圆柱曲面地形图)

有需要源代码CSDN私信我 注意 python项目移植前要进行以下操作 1.python项目备份 2.生成requirements.txt的库文件 以pycharm为例,生成Python项目所需要的依赖库/包文档:requirements.txt_如何将pycharm项目安装的库文件导出为requirement.txt-CSDN博…

揭秘千巡翼X4卫星通讯无人机

揭秘千巡翼X4卫星通讯无人机 在无人机作业的时候,经常遇到这些异常场景,例如通信网络中断,强干扰,导致无人机无法与飞手通信等。而这些给无人机作业带来三大难题: 难题1,山区作业时通信中断,飞…

Cookie的详解使用(创建,获取,销毁)

文章目录 Cookie的详解使用(创建,获取,销毁)1、Cookie是什么2、cookie的常用方法3、cookie的构造和获取代码演示SetCookieServlet.javaGetCookieServlet.javaweb.xml运行结果如下 4、Cookie的销毁DestoryCookieServletweb.xml运行…

Swift 周报 第四十二期

文章目录 前言新闻和社区苹果 CEO 库克透露接班计划,希望继任者来自公司内部消息称苹果自研 5G 调制解调器开发再“难产”,将推迟到 2026 年 提案正在审查的提案 Swift论坛推荐博文话题讨论关于我们 前言 本期是 Swift 编辑组整理周报的第四十二期&…

Android10(SDK29)以后存储问题

如果你的targetSDK>29 1:使用系统给app分配的内部存储不需要存储权限? 例如:context.getExternalFilesDir(null),随意使用 2:不能随意在外部存储创建文件/文件夹; 例如:Environment.getE…