HEVC网络适配层介绍

这篇具有很好参考价值的文章主要介绍了HEVC网络适配层介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

h265 的分层结构

分层结构的目的

○ 网络类型多种多样,不同的网络环境具有不同的特性,压缩视频在其中进行传输必然会受到影响;比如不同网络的 MTU 有所不同;
○ 不同的应用场景对视频有不同的需求,视频业务会喜用不同的传输协议;

分层的重要性

○ 经过熵编码,码流中的二进制符号不再简单地对应实际数值,严重时当个符号的丢失或错误会导致后续数据无法正确解码;
○ 在网络上优化传输这种高度复杂的压缩视频流时,必须对码流进行深入分析或解码才能清楚不同数据的重要程度;但对码流进行深入分析甚至解码的计算复杂度太高,无法得到通用网络设备的支持。
HEVC网络适配层介绍,H265标准(HEVC),HEVC,x265,视频编解码,实时音视频,NALU,直播,转码

VCL 与 NAL

○ H.265/HEVC也采用了视频编码层(Video Coding Layer, VCL)和网络适配层(Network Abstract Layer, NAL)的双层架构,以适应不同的网络环境和视频应用 。网络适配层的主要任务是对视频压缩后的数据进行划分和封装,并进行必要的标识,使其可以很好地适应复杂多变的网络环境。

NAL的作用机制

○ 一系列图像组成的原视频视频经过压缩编码 (VCL),接着根据压缩视频比特流的内容特性将其划分成多个数据段,对每个数据段进行封装并标识,就生成了 NALU,内容特性信息存放在 NALU 头信息中。
HEVC网络适配层介绍,H265标准(HEVC),HEVC,x265,视频编解码,实时音视频,NALU,直播,转码

NAL 与 MTU

○ NAL的大小不一定与网络的MTU(MaximumTransmission Unit,最大传输单元)大小一致,因此网络分组与NALU 就产生几种组合形 式: 一个网络分组包含一个NALU ; 一个网络分组包含多个NALU,即多个NALU合并到一个网络分组;多个网络分组包含一个NALU,即一个NALU被分割到多个网 络分组。
○ 网络传输过程中,网络设备可以直接通过 NALU 的头信息获取 NALU 承载视频数据的内容特性,在此基础 上优化视频流的传输。

h265 图像类型

  1. 所有的压缩视频数据都被封装到不同的 NALU 的载荷部分,NALU 除了承载 VPS、SPS、PPS 等信息,主要承载视频片 Slice 的压缩数据;
  2. 承载视频片压缩数据的 NALU 称为 VCLU(VCL NALU),承载其他信息的 NALU 被称为 non-VCLU(non-VCL NALU);
  3. 随机介入点 IRAP
    ○ 从 IRAP (Intra Random Access Point)开始,后续视频流可独立正确解码,无须参考 IRAP 前面的视频信息,IRAP 后的第一幅解码图像被称为 IRAP 图像;
    ○ 根据播放和解码顺序,有可以将其他图像分为前置(Leading)图像、后置(Trailing)图像;其中前置图像又可以分为 RADL 图像和 RASL图像;
    ○ h265 规定了3 种 IRAP 图像:IDR 图像、CRA 图像、BLA 图像;
    ○ IRAP 图像把视频流分成多个相对对立 的区域,每个区域被称为 CVS(Coded Video Sequence),CVS 定义为两个相邻 IRAP 图像(且 NoRas1OutputFlag=1)之间的这段视频流;
  4. TSA/STSA
    ○ h265 的新增图像类型,用来标识时域子层切换点;
    HEVC网络适配层介绍,H265标准(HEVC),HEVC,x265,视频编解码,实时音视频,NALU,直播,转码

网络适配层单元 NALU

  1. 每个 NALU 包含两部分:NALU 头(Header)和 NALU 载荷(Payload);
  2. SODB
    ○ 视频编码过程中输出包含不同内容的压缩数据比特流片段,这些比特流片段称为 SODB(String Of Data Bits);SODB 为最高为有效的存储形式,即字节内的比特按照从左到右、从高到低的顺序排列;
  3. RBSP
    ○ 在SODB(String Of Data Bits)后添加RBSP尾(rbsp trailing_bits)就生成了原始字节序列载荷(Raw Byte Sequence Payload,RBSP);RBSP尾由称为RBSP停止比特的 1 个比特和其后的0个或多个比特0组成。RBSP即为整数字节化的SODB , RBSP的数据类型即为SODB 的数据类型。
  4. EBSP
    ○ 在H265中,为了避免字节流片段和NALU的启起码及结束码发生冲突,需要对RBSP的字节流进行冲突处理 0x3,即EBSP为扩展字节序列载荷(Encapsulated Byte Sequence Payload),经过处理后的RBSP才可以直接作为NALU的负载信息,才可以进行磁盘保存和网络传输。
    ○ 因此实际最后的 NALU = Header + EBSP;
    HEVC网络适配层介绍,H265标准(HEVC),HEVC,x265,视频编解码,实时音视频,NALU,直播,转码
  5. NALU 语法
    HEVC网络适配层介绍,H265标准(HEVC),HEVC,x265,视频编解码,实时音视频,NALU,直播,转码

NALU Header

  1. 与h264相比,h265固定两字节的header,表征NALU的内容特征;
  2. 由定长的四部分组成:forbidden_zero_bit、nal_unit_type、nuh_layer_id、nuh_temporal_id_plus1;
    ○ forbidden_zero_bit占 1 比特,值应设置成 0,防止与 MPEG-2 系统的起始位冲突;
    ○ nal_unit_type占 6 比特,标识当前 NALU 载荷信息的内容特性,称为 NALU 类型;
    ○ nuh_layer_id占 6 比特,当前版本取值 0,未来可能勇于可分级视频或3D视频
    ○ nuh_temporal_id_plus1占 3 比特,时域标识,该值减 1表示 NALU 所在时域层的标识号 TemporalId不能为 0 ;
    HEVC网络适配层介绍,H265标准(HEVC),HEVC,x265,视频编解码,实时音视频,NALU,直播,转码

帧类型解析

  1. 与h264的 & 01f不同,h265判断方式为:
    ○ int type = (code & 0x7E ) >> 1;// 0x7E的二进制的后8位是 0111 1110

  2. VPS:00 00 00 01 40 01 的nuh_unit_type的值为 32
    ○ 40 & 0x7E = (二进制)01000000 & 01111110 = 01000000
    ○ 01000000 >> 1 = 00100000
    ○ (转十进制)00100000 = 2^5 = 32

  3. SPS:00 00 00 01 42 01 的nuh_unit_type的值为 33
    ○ 42 & 0x7E = (二进制)01000010 & 01111110 = 01000010
    ○ 01000010 >> 1 = 00100001
    ○ (转十进制) 00100001 = 2^0 + 2^5 = 33

  4. PPS:00 00 00 01 44 01 的nuh_unit_type的值为 34
    ○ 44 & 0x7E = (二进制)01000100 & 01111110 = 01000100
    ○ 01000100 >> 1 = 00100010
    ○ (转十进制)00100010 = 2^1 + 2^5 = 34

  5. SEI:00 00 00 01 4E 01 的nuh_unit_type的值为 39
    ○ 4E & 0x7E = (二进制)01001110 & 0111110 = 01001110
    ○ 01001110 >> 1 = 00100111
    ○ (转十进制) 00100111 = 20+21+22+25 = 1+2+4+32 = 39

  6. IDR:00 00 00 01 26 01 的nuh_unit_type的值为 19

  7. 被参考图像(P帧或者B帧):00 00 00 01 02 01 的nuh_unit_type的值为 1

接入单元

○ h264 引入了接入单元(Access Unit, AU)的概念,定义为多个按解码顺序排列的 NALU,这些 NALU 解码正好生成一个图像;
○ AU 可以看成是压缩视频比特流的基本单位,压缩视频流由多个按顺序排列的 AU 组成。
HEVC网络适配层介绍,H265标准(HEVC),HEVC,x265,视频编解码,实时音视频,NALU,直播,转码文章来源地址https://www.toymoban.com/news/detail-610867.html

参考

  1. 新一代高效视频编码H.265HEVC原理、标准与实现 [万帅,杨付正 编著] 2014年版.
  2. T-REC-H.265-202108-I.

到了这里,关于HEVC网络适配层介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 音视频数据处理-H265/HEVC视频码流分析

    音视频数据处理-H265/HEVC视频码流分析

    一、H265概述 H265/HEVC(Hight Efficiency Video Coding)是由ITU-T和ISO/IEC两大组织在H264/AVC的基础之上推出的新一代高效视频编码标准,主要为应对高清和超高清视频在网络传输和数据存储方面带来的挑战。上一篇文章对H264/AVC视频码流进行了详细的分析,本文继续从数据处理的角度对

    2024年02月11日
    浏览(14)
  • Windows 10/11 免费安装HEVC/H.265视频扩展

    将系统从 Win 10 升级到 Win 11 后,用系统自带播放器打开 HEVC (H.265编码)格式视频时,提示缺少编码器无法播放;以前可以通过浏览器访问 ms-windows-store://pdp/?ProductId=9n4wgh0z6vhq 跳转到微软应用店免费安装解码插件,但现在失效了,主要是为了播放8K视频。 最新方法: 访问 h

    2024年02月04日
    浏览(10)
  • 基于Python的pyAV读取H265(HEVC)编码的视频文件

    基于Python的pyAV读取H265(HEVC)编码的视频文件

            利用海康威视相机拍出来的视频是H265格式的,相比于常规的H264编码,压缩率更高,但因此如果直接用之前的方法读取,会出现无法读取的情况,如下。         可以看到,对于帧间没有改变的部分,H265编码就只保存一份,因此直接解析出来就都是空白的,只

    2024年02月22日
    浏览(13)
  • 最简单的基于 FFmpeg 的视频编码器(YUV 编码为 HEVC(H.265))

    最简单的基于 FFmpeg 的视频编码器(YUV 编码为 HEVC(H.265))

    参考雷霄骅博士的文章,链接:最简单的基于FFmpeg的视频编码器-更新版(YUV编码为HEVC(H.265)) 前一阵子做过一个基于 FFmpeg 的视频编码器的例子:最简单的基于 FFmpeg 的视频编码器(YUV 编码为 H.264)。 在该例子中,可以将 YUV 像素数据(YUV420P)编码为 H.264 码流。因为 FFmpeg

    2024年04月27日
    浏览(11)
  • 基于RK3399/RK3588 H.265/HEVC的低延迟视频传输系统设计与实现

    基于RK3399/RK3588 H.265/HEVC的低延迟视频传输系统设计与实现

    近年来,随着短视频直播的兴起,视频传输设备在生活中的应用越发普及。人们对图像 清晰度、帧率、码率等技术指标的要求不断提高,视频帧所包含的数据量也在急速增加。在 有限的网络带宽下,传统的视频采集设备面临压缩率不足、帧率低、延迟高等技术瓶颈,这 使得

    2024年02月08日
    浏览(14)
  • chrome浏览器解码H265视频方法

    chrome浏览器解码H265视频方法

    1、问题缘由: 项目系统的视频分析模块用户电脑无法使用浏览器打开。 用户电脑配置: 2、排查过程 使用了在站内及百度查询的方法 3、解决方案: gitlib中找到对应的chrome浏览器内核chromium 链接: https://github.com/StaZhu/enable-chromium-hevc-hardware-decoding/releases 点进链接下滑找到10

    2024年01月25日
    浏览(8)
  • 网页无插件播放265/264视频/监控大屏/GPU解码

    网页无插件播放265/264视频/监控大屏/GPU解码

    GPU解码,chrome网页播放32路 h256/hevc 直播视频流,毫无压力。 提供1分屏、4分屏、8分屏、9分屏、16分屏、32分屏、64分屏 分屏切换不会停止播放 GPU解码、无插件播放 自动识别264/265,并且都是GPU解码播放 详情: c++高性能264/265实时h5流媒体服务器前后端整体解决方案 性能测试 性

    2024年02月16日
    浏览(26)
  • H.265/HEVC编码原理及其处理流程的分析

    H.265/HEVC编码原理及其处理流程的分析

    H.265/HEVC编码的框架图,查了很多资料都没搞明白,各个模块的处理的分析网上有很多,很少有把这个流程串起来的。本文的主要目的是讲清楚H.265/HEVC视频编码的处理流程,不涉及复杂的计算过程。 ♈️H.265/HEVC是一种新的视频压缩标准,而视频是由一张张连续的图片组成的,

    2024年02月05日
    浏览(13)
  • Chrome已实现对H.265/HEVC的硬解支持

    Chrome已实现对H.265/HEVC的硬解支持

    H.265/HEVC作为ITU-T VCEG继H.264/AVC之后所制定的新视频编码标准,能够在有限带宽下传输质量更高的视频。超高清视频的普及与流行,使得各大网站不得不用H.265来代替老旧的H.264编码做视频传输,当使用H.265标准的视频时,浏览器对于H.265的支持不友好一直是用户及厂商们的应用之

    2023年04月09日
    浏览(13)
  • SkeyeRTMPClient扩展支持HEVC(H.265)解决方案之兼容H264和H265帧数据解析详解

    SkeyeRTMPClient扩展支持HEVC(H.265)解决方案之兼容H264和H265帧数据解析详解

    在之前两篇关于SkeyeRTMPClient扩展支持HEVC(H.265)解决方案的文章中,我们已经完成了对H265的支持,本文主要阐述将H26和H265支持兼容起来,实现不同视频编码格式的自适应兼容适配。 1. 根据CodecId判断数据编码类型 根据视频编码ID判断视频编码类型,如果视频编码ID==FlvCodeId_Hevc(

    2023年04月08日
    浏览(7)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包