当前位置: 首页 > news >正文

H264编码

        H264是一种针对视频的压缩编码方式。

一、压缩方法

        H264主要基于以下几种方法,将数据进行压缩:

1.帧内预测压缩:解决空间域数据冗余的问题

2.帧间预测压缩:(运动估计与补偿)解决时间域数据冗余的问题

3.整数离散余弦变换(DCT):将空间上的相关性转换为频域上的无关性,然后量化

二、压缩后数据

        压缩后,H264文件由I帧B帧P帧GOP图像序列组成。

I帧关键帧,由帧内压缩得到

B帧双向预测帧,由帧间压缩得到,压缩时既考虑前面的帧,又考虑后边的帧

P帧前向预测帧,由帧间压缩得到,压缩时只考虑前面处理的帧

GOP图像序列:由一个关键帧(I 帧)和后续的若干预测帧(P 帧B 帧)组成

三、H264组成

        H264由网络提取层 + 视讯编码层这两层组成。

1.网络提取层(NAL):网络编码后产生的数据流。通过NAL的第一个字节可以判断帧的类型

2.视讯编码层(VCL):是一个过程的汇总,由数据通过压缩编码得到NAL的过程,称为VCL

四、码流结构

        视频数据序列被压缩后形成VCL数据,VCL数据要封装在NAL单元中才可以传输。

SPS:序列参数集,作用于一系列连续的编码图像

PSS:图像参数集,作用于编码视频序列中一个或多个独立图像

         上图中的NALU可以分为两种:VCL类型 和 非VCL类型

五、IDR帧

        IDR帧,一种特殊的I帧

一般由于B和P帧都需要参考前后帧进行压缩,因此缓冲区中总保存着前后帧的信息。当解码器接收到当前是IDR帧时,会清空当前缓冲区,找到第一个IDR帧,并重新解码。

        每一个GOP的第一个帧就是IDR帧。(当图像差异过大时,会出现IDR帧)


http://www.mrgr.cn/news/17789.html

相关文章:

  • 大模型微调中的内存效率问题及解决方案
  • 【Docker镜像转存阿里云脚本】
  • 开启ROS 2中的geometry坐标模拟展示
  • 基础闯关3
  • K8s系列之:Operator 和 Operator Framework
  • C#绘制常用工业控件(仪表盘,流动条,开关等)
  • Android图片缓存工具类LruCache原理和使用介绍
  • K8s系列之:解释Kubernetes Operators
  • 视联动力数字科技新成果闪耀2024数博会
  • Linux实验报告2-初步使用shell
  • 展锐7870 Camera HAL层日志调试
  • 钢铁百科:A633D交货状态、A633D对应牌号、A633D力学性能解析
  • 软件项目实施方案(Word原件-项目案例)
  • 007.Python爬虫系列_初识爬虫
  • pyro ExponentialLR 如何设置优化器 optimizer的学习率 pytorch 深度神经网络 bnn,
  • C++身份证实名认证-实名制-身份证三要素认证-身份认证-身份验真-接口
  • 欧科云链OKLink受邀参与WebX ,旗下EaaS助力项目方“弯道超车”
  • Qt定时器详解
  • nodejs程序如何确定哪个是主进程文件?
  • Nuxt3入门:路由系统(第4节)