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

H265码流结构

​​​​​​​H264码流结构icon-default.png?t=N7T8https://blog.csdn.net/weixin_45993872/article/details/141689242(1)H265/HEVC介绍

        H265也成为HEVC,是在H264基础上的一种全新的视频编码技术,H265继承了H264的NALU和RBSP等标准,具有更高的压缩比1:200,而H264只有1:100

  (2)H265的用处:

        随着视频画质的提高,2k、4k甚至是8k,对于网络传输而言,继续使用H264的编码技术,网络的压力是非常巨大的,这就要求使用更高压缩比的技术来缓解网络压力,所以对于大的分辨率的视频一般都会采用H265编码技术。

   (3)H264和H265对比

        1.编码质量更高:相较于H264,H265编码采用了最小8*8到最大64*64编码宏块,而H264只能是固定的16*16的宏块进行编码,意思就是说H265在编码细节图像质量上要远远高于H264编码

        2.节省码率:在相同分辨率的情况下,使用H265编码可以以更低的码率进行传输(‌‌码率(Bitrate)‌是指数据传输时单位时间传送的数据位数,一般用‌kbps(千位每秒)或‌Mbps(兆位每秒)作为单位),达到更优势的画面质量,提升了网络的利用率。

        3.节省存储空间:因为H265是1:200的压缩比,H264是1:100,所以存储空间要低50%

 (4)H265的码流结构

        H265和H264一样也是遵循着VCL层和NAL层,也是严格的按照NALU进行划分和编码的,码流结构也是通过起始码0x00000001或0x000001进行NALU的分割。

        从这张图可以看出来,一个普通的H265码流基本上都是以:StartCode + VPS + StartCode  + SPS + StartCode + PPS + StartCode + SEI + Startcode + I帧 + StartCode + P帧。。。的形式表现出来,和H264不同的是,H265引入了VPS

        VPS(视频参数集)00 00 00 01 40 01

        VPS主要的作用就是对传输的视频进行等级分类,它有利于兼容各种视频编码的拓展和支持可分级视频编码。VPS是H265的独特功能,因为H265可以在多个子层进行兼容标准的拓展,在H265中第一个NALU就是VPS

        可分级视频编码:指的是视频只进行一次压缩,但是可以通过多个帧率或视频质量进行解码,当网络好的情况下,VPS可以传输基本层视频数据和增强层视频数据,当网络不好时VPS只传输基本层视频数据。

         SPS(序列参数集):00 00 00 01 42 01

     SPS主要功能就是包含编码图像的共享编码参数,在一个H265码流中可能包含一个或多个视频编码序列。SPS主要包含以下部分:自引id、profile(编码等级)、分辨率、总层数、对结构和变换系数的限制信息等。

         PPS(图像参数集): 00 00 00 01 44 01

    PPS包含了图像的公共参数,一般存储每一帧图像的不同设置参数。其包括:自引信息、初始化图像控制信息、分块信息。初学者在学习SPS和PPS的时候很容易搞混,因为这两个都是存储参数集的结构,但是它和SPS存储的数据有本质的区别。SPS存储的是针对一系列的编码序列的参数,它的标识符是seq_parameter_set_id、帧数等。而PPS是指某一个序列中的某一张具体的图像,其标识符是pic_parameter_id、可选的seq_parameter_set_id、初始化参数等信息

         SEI(图像补充增强信息): 00 00 00 01 4E 01

     SEI帧就是图像的额外信息,比方说要在HEVC码流中添加弹幕、字幕、时间戳等信息,我们就需要在SEI帧里面添加信息。

         I帧(完整的图像):00 00 00 01 26 01

         下图就是H264的码流

        


http://www.kler.cn/a/291994.html

相关文章:

  • 中仕公考怎么样?事业编面试不去有影响吗?
  • 2024140读书笔记|《作家榜名著:生如夏花·泰戈尔经典诗选》——你从世界的生命的溪流浮泛而下,终于停泊在我的心头
  • Electron 沙盒模式与预加载脚本:保障桌面应用安全的关键机制
  • MYSQL 精通索引【快速理解】
  • 第1章: 初识Pillow(PIL)
  • Java集合(Collection+Map)
  • 算法【邻接矩阵、邻接表、链式前向星建图】
  • VUE3+DRF 网页天气卡片组件实现
  • Java项目: 基于SpringBoot+mysql在线文档管理系统(含源码+数据库+开题报告+答辩PPT+毕业论文)
  • 经验笔记:RPC与高性能NIO框架
  • 【软件测试专栏】自动化测试函数篇
  • 业务复杂度治理方法论--十年系统设计经验总结
  • 【Hot100】LeetCode—34. 在排序数组中查找元素的第一个和最后一个位置
  • pnpm、npm和nvm分别时什么,及区别?
  • Android架构组件:MVVM模式的实战应用于数据绑定技巧
  • shell脚本的变量与应用
  • 计算机网络11——数据库语法2
  • hyperf json-rpc
  • <meta name=“robots“ content=““>介绍
  • Linux下快速判断当前终端使用的是bash or csh
  • 操作系统:线程实现方式
  • 【赵渝强老师】MongoDB的存储引擎
  • WorkPlus安全即时通讯:端到端加密开启信息保密新时代
  • [大数据]Debug:常见错误集合
  • 【Python机器学习】NLP词频背后的含义——从词频到主题得分
  • 开源模型应用落地-qwen2-7b-instruct-LoRA微调-ms-swift-单机多卡-RTX 4090双卡(十四)