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的码流

        H265码流结构_第1张图片

你可能感兴趣的:(嵌入式音视频,音视频,实时音视频)