hevc slice头字段

news/2025/2/2 6:00:29/

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 可以是任意值,解码器忽略该语法元素,在该版本中,其值不影响解码。


http://www.ppmy.cn/news/2621.html

相关文章

N子棋(外加双人对战)详解!推荐!!!

文章目录准备工作创建菜单进入游戏初始化棋盘、打印棋盘玩家下棋、电脑下棋、生成随机数判断输赢大家好!时隔多天,我终于写博客了,真的是开心!这一次带来的是N子棋有双人对战和单人下棋,请认真看下去,我会竭…

nginx代理https妈妈级手册

目录 背景说明 相关地址 https证书生成 nginx安装及配置 结果展示​编辑 背景说明 为了保证传输加密、访问安全,我们采用nginx服务器将http服务代理为https。所需材料:openssl(用来生成证书)、http服务、nginx自身。 相关地址…

给你一张n*m的西湖地图二值图,其中西湖的轮廓用1表示,轮廓内核轮廓外均用0表示。现在请你统计西湖的面积,即轮廓内0的个数。

给你一张n*m的西湖地图二值图&#xff0c;其中西湖的轮廓用1表示&#xff0c;轮廓内核轮廓外均用0表示。 现在请你统计西湖的面积&#xff0c;即轮廓内0的个数。 解析&#xff1a; #include <iostream> #include <string> #include <queue> #include &…

《web课程设计》基于HTML+CSS+JavaScript典的中医药大学网(11个页面)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

移动WEB开发之rem布局--苏宁首页案例制作(flexible.js)

简洁高效的rem适配方案flexible.js 手机淘宝团队出的简洁高效 移动端适配库 我们再也不需要在写不同屏幕的媒体查询&#xff0c;因为里面js做了处理 它的原理是把当前设备划分为10等份&#xff0c;但是不同设备下&#xff0c;比例还是一致的。 我们要做的&#xff0c;就是确…

全新社交电商模式来袭,消费增值结合共享经济完成消费升级

大家好&#xff0c;我是林工&#xff0c;不知道大家是否了解消费增值&#xff1f;这是一个消费储量为基础的理念&#xff0c;体现的是消费者的消费与回报问题&#xff0c;普遍的消费返利&#xff0c;消费全返渐渐地已经不能够满足目前的客户&#xff0c;也就有了一个满足与这部…

HBase的数据模型和存储原理

HBase的数据模型 HBase中表的逻辑结构 Name Space&#xff08;命名空间&#xff09; 类似于关系型数据库的 DatabBase 概念&#xff0c;每个命名空间下有多个表。HBase有两个自带的命名空间&#xff0c;分别是 hbase 和 default&#xff0c;hbase 中存放的是 HBase 内置的表&a…

MySQL进阶篇(二) - 索引

一、索引概述&#xff08;P66&#xff09; 1. 介绍 索引&#xff08;index&#xff09;是帮助 MySQL 高效获取数据的数据结构&#xff08;有序&#xff09;。 在数据之外&#xff0c;数据库系统还维护着满足特定查找算法的数据结构&#xff0c;这些数据结构以某种方式引用&…