数据压缩实验七|MP4文件的分析

MP4文件的分析

实验要求

选择一个.mp4或者.264文件。在码流分析仪软件中打开该文件,从几个层次进行分析。
用码流分析软件检查所生成的码流中各种编码模式和运动矢量等信息分析不同统计特性的视频图像对应的编码模式和运动矢量的特点

实验步骤

(1)分析SPS和PPS里都包含哪些主要的信息,给出参数值。(例如分辨率、帧率、GOP结构等等)

(2)以一个GOP为例,分析如下信息:

  • 每个图像帧的类型及所用的编码比特数、QP值;并以图像帧号为横坐标、每帧所用比特数为纵坐标画出曲线图;以图像帧号为横坐标、每帧所用QP为纵坐标画出曲线图。
  • 以第一个I帧作为分析对象,基于该帧图像的空间特性,分析每个宏块所采用的编码类型及其比例。
  • 以第一个P帧作为分析对象,基于该帧图像的空间和时间特性,分析每个宏块所采用的编码类型及其比例。
  • 以某一个B帧作为分析对象,基于该帧图像的空间和时间特性,分析每个宏块所采用的编码类型及其比例。

实验内容

1.NAL( Network Abstraction Layer)
在这里插入图片描述

  • NAL用于定义适合于任何信道传输和存储的数据格式,并提供头信息,从而为视频编码提供与外界的统一接口
    所有的数据都包含于NAL单元(NAL units)中,每个NAL单元包含整数个字节的数据。

2.SPS和PPS
SPS和PPS

  • 几乎所有视频编码标准的编码结构都是基于树状的分层结构,如图像组层,图像层,片层,宏块层和块层。在以往的标准中,每一层都有头部信息描述该层中的重要信息,数据部分包含该层的数据。一旦头部信息丢失,就会导致该层及以下各层的所有数据不可用。
    ◼ 将片层以上很少变化的系统级信息放在序列参数集(Sequence parameter set, SPS)和图像参数集(Picture parameter set,PPS)中传送
    由于参数集中的信息大多是系统级信息,与图像具体内容不相关,因此需要在编解码端建立会话连接时进行传送或者在会话过程中以可靠的异步传送方式进行参数集更新

3.基本概念

  • MPEG-2语法结构若干图象构成GOP。GOP可以是开放或封闭的。在一个封闭的GOP中,最后一个B帧不需要下一个* * GOP中的I帧作为参考。GOP头中给出时间码、B图象的预测特性和编辑后的B图象能够正确解码的信息
    MPEG-1采用层次化的数据结构,分为6个层次
    ◼ 序列sequence:由若干图象组构成
    ◼ 图象组(Group Of Picture)GOP:由各种类型图象组成
    ◼ 图象picture,分为I、P、B、D四种类型,代表了各种压缩模式
    ◼ 切片slice:宏块的集合,主要用于误差恢复
    ◼ 宏块macro block:和H.261中的宏块定义相同
    ◼ 块block:8×8的象素矩阵,最小的DCT编码单位
    MPEG-1中的图象类型
    ➢ 相当于帧
    ➢ I型图象:使用类似JPEG算法进行帧内编码,是随机访
    问点
    ➢ P型图象:只参考前面的I图象和P图象,进行前向预测
    ➢ B型图象:可以参考其它的I图象和P图象,进行前向、
    后向和双向预测
    ➢ D型图象:仅包含每一块的直流分量,用于在甚低速率
    下提供浏览功能

实验过程

1.首先选取一个MP4文件,然后此次实验主要用H264Visa和eseye_u两个应用程序对选取文件进行分析,两个软件其实有很多重复的内容,各有侧重点,我主要是采用H264Visa看具体的信息,然后用eseye_u看GOP的一些数据以及帮助画图。
2.分析SPS和PPS里都包含哪些主要的信息,给出参数值。(例如分辨率、帧率、GOP结构等等)

NAL信息
在这里插入图片描述

SPS信息
H.264 sequence parameter sets成员值含义
在这里插入图片描述
具体见SPS和PPS的那个链接
(1)图像宽度=(1+pic_widtn_in_mbs_minus 1)*16=(59+1)*16=960
图像高度=(1+pic_height_in_map_units_minus 1)*16=
(27+1)*16=448
(2)帧率=time_scale/num_units_in_tick=60/1=60Hz

PPS
在这里插入图片描述
num_slice_groupes_minus1=0 该图像帧中只有一个Slice group
3.以一个GOP为例,分析如下信息
在这里插入图片描述
由图知第一个GOP长度为8(因为图像是第9帧才出现,之前一直是黑色的)

  • 每个图像帧的类型及所用的编码比特数、QP值;并以图像帧号为横坐标、每帧所用比特数为纵坐标画出曲线图;以图像帧号为横坐标、每帧所用QP为纵坐标画出曲线图。
    在此处导出数据
    在这里插入图片描述在这里插入图片描述
    然后用excel作图
    在这里插入图片描述
    此处是有彩色图像出现后的第一个IBP帧,因为这样分析才有意义,自己之前下视频的时候没注意最开始有黑屏。
  • 以第一个I帧作为分析对象,基于该帧图像的空间特性,分析每个宏块所采用的编码类型及其比例。
    在这里插入图片描述
    在这里插入图片描述

I帧采用帧内预测, I图像(帧)是靠尽可能去除图像空间冗余信息来压缩传输数据量的帧内编码图像。

I帧又称为内部画面 (intra picture),I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩(做为随机访问的参考点)可以当成图象。
从上图可以看出QP是19.622,每个宏块比例见红色框.

  • 以第一个P帧作为分析对象,基于该帧图像的空间和时间特性,分析每个宏块所采用的编码类型及其比例。

在这里插入图片描述
在这里插入图片描述

P帧编码类型为前向预测, P帧是以I帧为参考帧,在I帧中找出P帧“某点”的预测值和运动矢量,取预测差值和运动矢量一起传送。在接收端根据运动矢量从I帧中找出P帧“某点”的预测值并与差值相加以得到P帧“某点”样值,从而可得到完整的P帧。
从上图可以看出QP是23.947,每个宏块比例见红色框.

  • 以某一个B帧作为分析对象,基于该帧图像的空间和时间特性,分析每个宏块所采用的编码类型及其比例。
    在这里插入图片描述
    在这里插入图片描述

B帧采用帧间预测,B帧法是双向预测的帧间压缩算法。当把一帧压缩成B帧时,它根据相邻的前一帧、本帧以及后一帧数据的不同点来压缩本帧,也即仅记录本帧与前后帧的差值。只有采用B帧压缩才能达到200:1的高压缩。一般地,I帧压缩效率最低,P帧较高,B帧最高。
从上图可以看出QP是15.000,每个宏块比例见红色框.

其中BPI帧的特性可以看这个链接
I帧、P帧、B帧 关键帧详解

实验结论

通过此次实验,运用所给的应用程序,分析一个MP4文件,对视频编码的逻辑更为清晰,也可以通过软件更为明朗得得到关于视频的信息,收获颇丰。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值