hevc slice头字段

HEVC 片与片段(Slice 和Slice Segment)说明 HEVC 片与片段(Slice 和Slice Segment)说明 一幅图像可以被分割为一个或多个片(Slice),每个片的压缩数据都是独立的,Slice头信息无法通过前一个Slice的头信息推断得到。这就要求Slice不能跨过它的边界来进行帧内或帧间预测,且在进行熵编码前需要进行初始化。但在进行环路滤波时,允许滤波器跨越Slice的边界进行滤波。除了Slice的边界可能受环路滤波影响外,Slice的解码过程可以不使用任何来自其他Slice的影响,且有利于实现并行运算。使用Slice的主要目的是当数据丢失后 阅读详情

3.5 片分层

 一副图像可以背分割为一个或者多个片slice,每个片的压缩数据都是独立的,Slice头信息无法通过前一个slice的头信息推断到。这就要求slice不能跨过它的边界来进行帧内或者帧间预测,并且在进行墒编码前需要进行初始化。但是进行环路滤波时,允许滤波器跨slice的边界进行滤波。除了Slice的边界可能受环路滤波影响外,Slice的解码过程可以不实用任何来自其它Slice的影响,且有利于实现并行计算,使用Slice的主要目的是当数据丢失后能再次保证解码同步。

    根据编码类型的不同,Slce可以分为以下几种

ISlice 该Slice中所有CU编码过程中都使用帧内预测,

PSlice在ISlice的基础上,该Slice中的CU还可以使用帧间预测。每个预测块PB使用至多一个运动补偿预测信息,PSlice只使用图像参考列表List0

  BSlice在PSlice的基础上,BSlice中的CU也可以使用帧间预测,但是每个PNB可以使用至多两个运动补偿预测信息。BSlice 可以使用图像参考列表List0 List1.

  一个独立的Slice可以被进一步划分成若干个SS,包括一个独立的SS和若干个依赖SS,

并且以独立SS作为该Slice的开始,一个SS包含证书个CTU,并且这些CTU分布在同一个NAL单元中,SS可以作为一个分组来传送视频编码数据。其中,独立SS是指它所涉及的句法元素可以由自身确定,依赖SS是指它所涉及的某些句法元素由已经解码的独立SS推导得到,依赖SS可以共享独立SS携带的一些信息。例如RPS信息,SAO的可用性和加权预测可用性等等。预测过程不能跨越独立Slice的边界。但是可以跨越依赖SS的边界,一个Slice内的SS之间可以相互参考,下面的例子将分别对一副图像中的Slice以及所包含的SS做详细的说明。

 例如 一幅图像划分为两个Slice,第一个Slice由一个包含4个CTU的独立Slice Segment,一个包含32个CTU的依赖SS和另外一个包含24个CTU的依赖SS组成,而第二个Slice由唯一一个包含39个CTU的独立SS组成。

   H265编码的最高层为SS曾,SS曾所需要的图像曾信息可以通过饮用相应的PPS来获得,SS头包含其饮用的PPS的标示号,同一副图像中所有的SS引用同一个PPS,此外,SS头中会存在一些与PPS相同的参数,SS头中这些参数值会对PPS中该参数值进行覆盖,以下部分对H265中SS相关的愈发语义做详细介绍。


 

First_slice_segment_in_pic_flag 表示按照解码顺序,当前SS是否为第一个SS

No_output_of_prior_pics_flag 在IDR和BLA图像解码之后该愈发元素会影响解码图像缓冲器中已经解码图像的输出。

Slice_pic_parameter_set_id 表示当前Slice所引用的PPS的ID号。

Dependent_slice_segment_flag 表示当前SS是否依赖SS。

Slice_segment_address 对一副图像的CTU进行光栅扫描后,当前SS中第一个CTU的地址。

   Slice_reserved_flag[i] 其值和语义保留,供ITU-T以及ISO/IEC将来使用,解码器应该忽略该愈发元素。

    Slice_type 指明该Slice类型

    Pic_output_flag 该语法元素影响解码图像的输出和移除过程。

 Color_plane_id ,当separate_color_plane_flag 为1时,该语法元素规定了彩色平面,其值为0,1,2时,分别对应着Y,Cb,Cr

   Slice_pic_order_cnt_lsb 规定了当前图像的POC与MaxPicOrderCntLsb取模后的值,用于计算当前图像的POC值。

   Short_term_ref_pic_set_sps_flag 值为1,表示当前图像的短期参考图像集可以通过SPS中的语法结构ST_REF_PIC_SET 得出,值为0,则表示当前图像的短期参考语法通过Slice头中的语法结构st_ref_pic_set 得出,当num_short_term_ref_pic_sets 取值为0时,short_term_ref_pic_set_sps_flag 应该等于0.

  Short_term_ref_pic_set_idx 表示当前图像使用哪一个短期参考帧图像集。

   Num_long_term_sps 表示当前图像的长期参考帧的树木。

   Num_long_term_pics 表示当前图像的长期参考图像的数目。

   It_idx_sps[i] 表示当前图像的第i个长期参考图像在候选长期参考图像列表中的索引好。

   Poc_lsb_it[i] 表示当前图像的第i个长期参考图像的POC值与MaxPicOrderCntLsb 取摸之后的值。

   used_by_curr_pic_it_flag[i] 表示当前图像长期参考图像集中第i个参考图像是否可以用作当前图像的参考。

   Delta_poc_msb_present_flag[i] 表示delta_poc_msb_cycle_lt[i] 是否存在。

   Delta_poc_msb_cycle_lt[i] 用于计算当前图像的第i个长期参考图像的POC值,(长期参考图像包括两部分--SPS和Slice 头中的分别制定的长期参考图像。该句法元素中的delta表示任一部分中相邻两个长期参考图像的poc_msb_cycle_lt的差值。)

   Slice_temporal_mvp_enabled_flag 表示帧间预测是否使用时域MV预测。 是否使用时域MVP。

   Slice_sao_luma_flag luma是否打开sao

   Slice_sao_chroma_flag, 表示当前Slice色度分量是否使用SAO 

   

Num_ref_idx_active_override_flag 表示当前Slice中语法元素的num_ref_idx_l0_active_minus1和num_ref_idx_l1_active_minus1是否存在。

    Num_ref_idx_l0_active_minus1 表示可能用于解码当前Slice的参考图像list0 中的最大参考索引值,其取值范围为【0, 14】

Num_ref_idx_l1_active_minus1 表示可能用于解码当前Slice的参考图像list1 中的最大参考索引值,其取值范围为[0,14] 

Mvd_l1_zero_flag 其值为1表示mvd_coding(x0, y0, 1)未被解析。

且对于compIdx = 0.1 MvdL1[x0][y0][compIdx] 被设为0,其值为0表示mvd_coding(x0,y0,1)已经被解析。

Cabac_init_flag 规定在上下文变量的初始化过程中,是否使用初始化表。

Collocated_from_l0_flag 规定用于时域MV预测的collocated图像来自参考图像列表list0还是list1。

Collocated_ref_idx 规定用于时域MV预测的collocated 图像的参考索引号。

Five_minus_max_num_merge_cand 制定MVP候选点可以合并的最大数目。

Slice_qp_delta 规定当前Slice中CB可以使用的量化参数。QPy

Slice_cb_qp_offset 该语法元素值加上变量PPS_CB_QP_OFFSET 的值即为量化参数变量QpCb的值。

Slice_cr_qp_offset 该语法元素值加上变量pps_cr_qp_offst的值即为量化参数QP的值。

Deblocking_filter_override_flag 表示slice头是否存在去方块滤波参数。

Slice_deblocking_filter_disabled_flag 表示当前Slice是否使用去方块滤波,该语法元素不存在时,可以推测出其值等于pps_deblocking_filter_disable_flag。

Slice_beta_offset_div2和slice_tc_offset_div2 用于获取当前Slice去块滤波补偿参数beta和tC。该两个语法元素不存在时,可推测出其值分别等于pps_beta_offset_div2和pps_tc_offset_div2。

  Slice_loop_filter_across_slices_enabled_flag 表示环路滤波是否可以跨越当前slice的上边界和左边界。语法不存在是,用pps_loop_filter_across_slices_enabled_flag。

  Num_entry_point_offsets 表示Sliced头中句法缘聚Entry_point_offset_minus1[i] 数目。

 Offset_len_minus1 表示句法元素entry_point_offset_minus1[i]的比特长度,

 

  Entry_point_offset_minus1[i] 规定i个entry point的以字节为单位的偏移量。

 Slice_segment_header_extension_length 表示SS头扩充数据的长度。

Slice_segment_header_extension_data_byte 可以是任意值,解码器忽略该语法元素,在该版本中,其值不影响解码。

H265视频码流结构分析 本文会对H265编码后的视频流做一个详细的介绍 阅读详情

相关推荐

H265/HEVC视频分层码流分析语义元素解释

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

weixin_43876729的博客 9431

HEVC的条带头解析

一个条带由整数个coding tree units组成的编码视频流的结构,包含一个非依赖性条带元素和0到多个依赖性条带元素。若当前某个条带元素属于非依赖性条带元素,或者是按照解码顺序在当前的依赖性条带元素之前的第一个非依赖性条带元素的slice element header被称作当前条带的条带头。另一方面,条带元素头中的数据应用于该条带元素中的第一个或者所有的coding tree units

sml的专栏 954

搞懂H.265/HEVC编码:VPS、SPS、PPS、Slice和Tile到底管什么?(附通俗图解)

本文深入解析H.265/HEVC编码标准中的核心组件VPS、SPS、PPS、Slice和Tile的功能与协作机制。通过通俗图解和实战指南,揭示这些参数集如何提升视频压缩效率50%以上,并详细讲解它们在并行解码、错误隔离和硬件加速中的关键作用。

weixin_42629815的博客 428

H265/HEVC编解码系列(1):图像分割(Slice、Tile、CTU)

H265编码中一些基本概念参考 参考 [1] [新一代高效视频编码H.265/HEVC原理、标准与实现] [2] [High Efficiency Video Coding(Hevc) Algorithms and Architectures]

qq_39565868的博客 1万+

HEVC(H.265) 基础知识

最近由于工作需求,需要学习HEVC。最初一头雾水,都不了解这个是视频bian'ga 简称HEVC High Efficiency Video Coding

freiheit_zz的博客 2006

视频编码中Slice与宏块的原理及嵌入式实践

视频编码中的Slice(片)和Macroblock(宏块)是H.264/H.265标准的核心结构单元,决定了帧内并行处理能力、错误恢复边界与硬件加速效率。其本质是为平衡压缩率、延迟与鲁棒性而设计的空间划分机制:Slice作为预测隔离单元,支撑多核并行与误码限制;Macroblock(H.264)或CTU/CU(H.265)则构成编码操作的最小粒度,直接影响运动估计精度、内存对齐要求与DMA传输效率。在RV1126、RK3568等AI视频SoC中,合理配置Slice数量、类型及宏块/CTU划分策略,可显著优化

weixin_32869687的博客 409

H.265/HEVC码流解析:从NAL头到slice header的完整指南

视频编码标准中,H.265/HEVC凭借更高的压缩效率和灵活的分层结构成为4K/8K视频的主流选择。理解其码流组织方式,是进行播放器适配、转码服务及画质分析的基础。与H.264相比,HEVC采用了VPS、SPS、PPS和Slice等多级嵌套的语法结构,每个层级通过特定的语义元素描述编码参数。掌握这些语义元素,能将看似杂乱的十六进制码流转化为可读的解码指令。从分层设计原理出发,拆解VPS、SPS、PPS关键字段,并演示如何从NAL头逐位解析到slice header,同时结合CABAC初始化与QP联动等细节,

weixin_33488239的博客 322

H.265/HEVC分层码流结构详解:NAL、参数集与实战排障

视频编码中,H.265/HEVC码流的结构直接关系到播放器稳定性与流媒体传输质量。理解NALU(网络抽象层单元)的分类与语义,是解析码流的基础。HEVC通过VPS/SPS/PPS参数集及时间、空间、质量分层设计,实现了网络自适应、错误隔离与可扩展性。在实际应用中,无论是弱网下的帧丢弃、切流时的随机访问,还是排查花屏卡顿,都依赖于对H.265码流分层结构的准确认知。本文从NALU头部解析出发,深入参数集与切片层语义,分享码流分析流程和典型排障案例,展示分层码流在工程中的核心价值与应用要点。

weixin_29204205的博客 289

H265(HEVC)编码技术介绍

编码树单元(Coding Tree Unit,CTU)是HEVC的基本编码单元,有如H.264/AVC的宏块(MicroBlock,MB)。编码树单元可向下分割编码单元(Coding Unit,CU)、预测单元(Prediction Unit,PU)及转换单元(Transform Unit,TU)。定义编码工具集和色深/色度采样支持(如8bit/10bit、4:2:0/4:2:2等)色度采样格式(0=单色,1=4:2:0,2=4:2:2,3=4:4:4)。40 01,type=32,VPS(视频参数集)

jwybobo2007的博客 1226

音视频之H.265码流结构深度解析与实战

本文深入解析H.265/HEVC码流结构,从NALU起始码到参数集(VPS/SPS/PPS)的二进制解析,结合实战代码示例展示视频编码核心技术。探讨了H.265相比H.264在压缩效率上的提升,并提供了Elecard分析工具和FFmpeg的实用技巧,帮助开发者优化视频编解码性能。

weixin_42525582的博客 337

H.265/HEVC FPGA解码器Verilog工程:CTU状态机与CABAC流水设计解析

视频编解码是多媒体系统的核心,HEVC/H.265作为主流标准,在FPGA上实现纯硬件解码挑战巨大。其四叉树划分、CABAC上下文建模等环节存在强串行依赖,与FPGA并行流水架构形成鲜明对比。通过Verilog RTL设计,将NAL到YUV的解码链路组织为可综合的状态机,尤其以CTU为基本处理单元,合理拆分CABAC解码流水与参考帧管理,是提升硬件解码效率的关键。该技术广泛应用于视频硬件加速、嵌入式视觉、广电与流媒体领域,能显著降低CPU负载。本文围绕一个基于Verilog的H.265/HEVC FPGA解

weixin_30313409的博客 264

H265/HEVC码流语义元素全解析:从NAL头到CTU的位级解读

视频编解码技术是数字音视频领域的基石,H265/HEVC凭借更高的压缩效率和灵活的分层结构,已在直播、点播、安防监控等场景广泛落地。然而,面对一段十六进制裸流,如何从中准确读出分辨率、档次、级别、参考结构等关键信息,却是许多开发者绕不开的难题。码流本质上是解码器的施工图,其中NAL头、VPS/SPS/PPS参数集、Slice段头以及CTU四叉树上的残差标志,共同构成了HEVC语法元素的完整链条。理解这些二进制字段的读取顺序与位宽,不仅能帮助排查花屏、拖拽卡顿、封装时长异常等工程问题,还能为自研码流分析工具或

weixin_42525264的博客 316

h265_decoder.zip:HEVC解码SDK调试与ABI兼容性实战指南

H.265(HEVC)是一种高效视频编码标准,其解码依赖于符合Annex B格式的NALU流解析、硬件指令集适配及底层内存对齐控制。理解HEVC解码原理需掌握SPS/PPS结构、起始码识别与YUV420P输出布局等核心概念,技术价值在于实现可控、可调试、低延迟的嵌入式/边缘端解码链路。典型应用场景包括安防IPC接入、无人机图传解析、医疗DICOM视频流处理等对解码稳定性与可观测性要求严苛的工程现场。本文聚焦h265_decoder.zip这一轻量级HEVC解码SDK,深入剖析其ABI兼容性判断、动态库加载规

weixin_34198881的博客 215

用C++手搓一个H.265码流解析器:从NALU分割到参数集提取(附完整代码)

本文详细介绍了如何使用C++从零开始构建一个H.265码流解析器,涵盖NALU分割、参数集提取等核心功能实现。通过解析H.265/HEVC视频编码标准的基础结构,包括VPS、SPS、PPS等关键参数集,并提供完整的代码示例,帮助开发者深入理解视频编码原理并实现高效的码流分析工具。

weixin_29290863的博客 373

Elecard Stream Eye码流分析实战:从SPS/PPS到GOP排查编码问题

视频编解码开发与流媒体运维中,码流分析是定位异常的根本手段。H.264/HEVC 码流中的 SPS/PPS 参数集、帧类型与参考帧列表,决定了播放器能否正确解码。Elecard Stream Eye 作为专业码流分析工具,能把封装层之下的语法字段逐层展开,帮助工程师从 GOP 结构、slice 划分和帧大小波动中快速定位花屏、参考帧过多等隐蔽问题。它常用于转码对比、编码器选型和传输故障排查。本文结合 ffprobe 交叉验证,介绍从抽取 ES 流到核对 SPS/PPS 参数的完整流程,让“可能出问题”变成“

weixin_28826521的博客 295

Vscode + QT + CMake:高效开发环境搭建全攻略

本文详细介绍了如何搭建Vscode+QT+CMake高效开发环境,涵盖环境安装、配置优化及项目创建全流程。通过整合Vscode的轻量化编辑、QT的跨平台GUI开发以及CMake的现代构建管理,该组合特别适合大型QT项目和跨平台开发团队,能显著提升开发效率。

weixin_30338481的博客 504

AVC 解码器学习第二弹:拆开 Slice——解码器到底怎么读懂一帧画面

本文为H.264/AVC码流解析笔记的第二篇,重点讲解Slice Header的结构与解析方法。Slice Header位于Slice NAL单元中,包含解码Slice Data所需的关键配置信息。文章详细解析了各字段的编码方式和功能。

qq_42937439的博客 347

瑞芯微Android固件修改实战:从解包到root提权完整流程(附工具包)

本文详细解析了瑞芯微Android固件深度定制全流程,涵盖从固件包解包、系统镜像修改到植入root提权与分区调整的实战步骤。通过工具链操作与原理剖析,指导开发者安全实现系统精简、权限获取及存储扩容,最终完成固件重新打包与刷机验证,适用于追求设备完全控制权的技术爱好者。

ujm56789012的博客 698

H.264码流结构深度解析:从NALU到Slice,彻底搞懂花屏卡顿根因

视频编码中,H.264通过帧内预测消除空间冗余、帧间预测消除时间冗余,再经变换与熵编码实现高压缩比。其码流由NALU组成,SPS/PPS参数集与I/P/B帧Slice协同工作,支撑解码与网络传输。理解NALU、GOP、参考帧等结构,能高效排查花屏、卡顿、音画不同步等问题,并优化秒开、seek与带宽自适应。在视频监控、直播推流、视频会议等场景中,掌握H.264码流解析是定位编码配置与传输异常的关键基本功。

weixin_32642109的博客 160

银河麒麟v10-arm版离线安装Portainer

银河麒麟v10-arm版离线安装Portainer

q_hsolucky的博客 3051

手把手教你学Simulink——基于经典PID控制的电机系统场景实例:永磁同步电机(PMSM) PID转速控制仿真

*永磁同步电机(PMSM)因其高效、高功率密度和良好的动态响应特性,在现代工业自动化、电动汽车驱动系统等领域得到了广泛应用。为了实现对PMSM的速度精确控制,通常采用矢量控制(Field Oriented Control, FOC)**策略,其中PID控制器是实现速度环和电流环调节的关键组件。本教程将带你使用构建一个基于PID控制的永磁同步电机转速控制系统仿真模型PMSM电机建模矢量控制(FOC)策略实现PID控制器设计系统仿真与调试控制效果分析本文介绍了如何使用构建一个。

MHD0815的博客 6951

H.265码流解析

H.265(hevc)码流解析

青山渺渺 4510

软件崩溃时Visual Studio中看不到有效的调用堆栈,使用Windbg动态调试去分析定位

当在Visual Studio中遇到软件崩溃且无法查看详细调用堆栈时,可以使用Windbg进行动态调试去分析定位问题。

dvlinker的技术专栏 1万+
上一篇: h265帧内预测决策过程
下一篇: hevc 基于均值的RDO模式删减
fantasy_arch
博客等级 码龄15年 1524粉丝 538原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值