返回专栏目录

在AV1中,有一种编码手段,类似于HEVC中的Slice,叫做Segment。segmentation技术将一帧分为若干个部分,然后对这些部分提供单独的参数。这些参数可以包含

  • 量化参数(绝对值或者delta值)
  • loop filter 强度(strength)
  • 预测参考值信息
  • 块skip信息

Segmentation

在一帧中,最多可以定义8个segment,也就是说,最多只会有8套segment参数传输到解码端,在SVT-AV1中有宏定义

#define MAX_SEGMENTS 8

同时,每一个segment都会有一个segment ID,指定当前块属于哪一个segment,在SVT-AV1代码中,关于segment的参数由一个叫SegmentationParam的结构体存储

typedef struct {/*!< 1: 启用Segmentation 功能*    0: 表示当前帧不使用Segmentation功能*/uint8_t segmentation_enabled;/*!< 1: 表示解码此帧时需要同时更新 Segmentation map*   0: 表示直接从上一帧拿 segmentation map*/uint8_t segmentation_update_map;/*!< 1: 表示当前帧的segmentation map的更新是有参考了已有的segmentation map*   0: 表示不参考已有的segmentation map,直接传一张新的map */uint8_t segmentation_temporal_update;/*!< 1: segment 添加新的parameter*   0: segment 使用已有的parameter */uint8_t segmentation_update_data;/*!< feature data */int16_t feature_data[MAX_SEGMENTS][SEG_LVL_MAX];/*!< 该segment启用了哪些特性 */int16_t feature_enabled[MAX_SEGMENTS][SEG_LVL_MAX];/*!< qm level */int16_t seg_qm_level[MAX_SEGMENTS][SEG_LVL_MAX];/*!< 当前segmentation id最大值,也就是已经分配了多少个segment */uint8_t last_active_seg_id;/*!< 1: 先读segment id 再读 skip syntax element*   0: 先读 skip syntax element */uint8_t seg_id_pre_skip;//qp-binningint16_t variance_bin_edge[MAX_SEGMENTS];} SegmentationParams;

这个结构体中的信息会被放到Frame Header里,这也就意味着针对每一帧,segment的划分是有存在差异的可能性的。

[AV1] Segment相关推荐

  1. [AV1] 谈谈AV1中的 S-Frame

    前几天在看AV1代码的时候,偶然在代码中看到了一个Switch Frame的概念,也称为S-Frame,因为之前我只看过HEVC,从来没有见过此概念,所以特地查了下,感觉跟H.264的extended ...

  2. [AV1] AV1技术专栏(正在更新中)

    AV1 专栏 学习AV1必备的利器: 手把手教你本地搭建 AV1 Analyzer 这个专栏是我花了半年的时间阅读libav1,SVT-AV1以及dav1d的源码后摸索总结出来的AV1技能树,希望能帮 ...

  3. 手把手教你搭建自己的 AV1 Analyzer

    随着最近H.266标准的完成,其惊人的复杂度令人生畏,与此同时,新兴的AOM组织于2018年年中耗时3年完成的AV1标准吸引了不少业内人的眼球,不仅仅是其有竞争力的编码性能,还有其在流媒体方面的优异表 ...

  4. OpenCV中的快速特征检测——FAST(Features from Accelerated Segment Test)

    OpenCV中的快速特征检测--FAST(Features from Accelerated Segment Test) 1. 效果图 2. 源码 参考 OpenCV中的尺度不变特征变换(SIFT S ...

  5. 【FFmpeg】警告:[hls] pkt.duration = 0, maybe the hls segment duration will not precise

    1.问题描述 在使用ffmpeg编程生成m3u8文件时,报警告 [hls @ 0x7f26b4181840] pkt->duration = 0, maybe the hls segment d ...

  6. 【Qt】QPixmap加载图片报错:Corrupt JPEG data: premature end of data segment Didn‘t expect more than one scan

    1.问题描述 在使用QPixmap加载图片时失败,错误信息如下 Corrupt JPEG data: premature end of data segment Didn't expect more ...

  7. AV1时代要来了,超高清视频时代视频编码技术的机遇与挑战

    近些年随着视频行业的迅猛发展,尤其像短视频.点播.直播.VR等领域的爆发,人们对于高清.超高清视频体验的追求越来越强烈,流媒体平台如何在提升观众观看体验,同时降低播放成本,利用技术降低带宽消耗的同时又 ...

  8. 了解你所不知道的SMON功能(十二):Shrink UNDO(rollback) SEGMENT

    SMON对于Undo(Rollback)segment的日常管理还不止于OFFLINE UNDO SEGMENT 转载于:https://blog.51cto.com/maclean/1278486

  9. 视频分割--Learning to Segment Instances in Videos with Spatial Propagation Network

    Learning to Segment Instances in Videos with Spatial Propagation Network CVPRW2017 https://github.co ...

  10. 视频动作识别--Temporal Segment Networks: Towards Good Practices for Deep Action Recognition

    Temporal Segment Networks: Towards Good Practices for Deep Action Recognition ECCV2016 https://githu ...

最新文章

  1. 在python中嵌入c/c++
  2. 【CyberSecurityLearning 35】基础环境搭建
  3. js中document.referrer认识
  4. php如何直接使用iview,iview安装使用
  5. Java虚拟机详解04----GC算法和种类
  6. 计算机网络实验指导书 pdf,计算机网络实验指导书-20210608153043.pdf-原创力文档
  7. Python学习杂记_1_PyCharm使用的一些收获
  8. DevOps使用教程 华为云(9)代码检查
  9. 网站转换APP源代码/WebAPP源代码/网站生成APP源代码/Flutter项目/带控制端
  10. Intel汇编指令在线手册
  11. 项目管理知识体系(PMBOK)
  12. 基于HTML5+JavaScript实现的网页录屏器设计
  13. 一种逐样本的偏AUC优化框架
  14. web开发入门,css背景图片自适应屏幕宽度
  15. BUAACTF 2021校赛
  16. 2023年经济危机要来了,如何度过这个难关?
  17. [jvm-sandbox] 多个agent并用
  18. 【ML/DL】python3学习《机器学习实战》书中的报错及解决办法
  19. 如何将网址链接生成在微信可用的网址二维码
  20. STM32移植uC/OSIII

热门文章

  1. 啦啦啦啦啦 报道 报道
  2. Java虚拟机周志明Eason-zhang解读
  3. kali 更新后出现乱码的解决方案
  4. 国庆在家写了个简易版的在线简历网站
  5. JavaScript 原生js实现鼠标拖拽移动盒子图片
  6. Matlab 线性拟合 非线性拟合
  7. BUUCTF中的reverse1
  8. workman实现websocket聊天nginx的配置
  9. echarts关系图
  10. 传递给Appium服务器以开启相应安卓Automation会话的Capabilities的几点说明