本文来自ICASSP2021论文《IMPROVED INTRA MODE CODING BEYOND AV1》

AV1帧内预测

简介

在AV1中帧内预测模式分为角度帧内预测模式和非角度帧内预测模式,和VP9一样有8种角度帧内预测模式,在每种方向上还有7个delta角度(-3~+3)用于扩展方向的粒度,总共56个方向模式,如Fig1所示。

非角度帧内预测模式包括SMOOTH、SMOOTH-V、SMOOTH-H、Paeth预测和递归滤波模式。在AV1中,除了跨分支预测CfL外,色度和亮度分量共享同样的帧内预测模式。

帧内模式编码

如表1所示,帧内模式编码至少需要4个语法元素:亮度的标称角度(y_mode)、亮度的delta角度(angle_delta_y)、色度的标称角度(uv_mode)、色度的delta角度(angle_delta_uv)。在编码色度标称模式时,对应的亮度标称模式用于生成上下文。在编码色度delta角度时,色度标称角度用于生成上下文。换句话说,亮度和色度delta间的相关性(如果有的话)没有利用起来。

编码器帧内模式搜索

在AV1中,编码器以预定义或固定的的顺序遍历标称模式来搜索最优帧内预测模式。对于亮度分量,首先进行粗略的模式决策过程来确定那些模式进行全RDO计算。对于色度分量,所有标称模式都有进行全RDO计算。当当前块有超过32个像素,且对应的标称模式的RD cost是遍历的所有标称模式中最小时,进一步搜索delta角度。为了减少计算复杂度,不对所有delta角度进行全RDO计算,首先对delta角度-2,0,2进行搜索,然后基于它们的RD cost决定是否跳过其他delta角度的搜索。

帧内模式分布分析

亮度和色度块的帧内预测角度通常有很高的相关性。在Fig2(a)中,水平轴表示当色度delta角度不为0时,亮度和色度标称角度的差值。可以看见当色度delta角度不为0时,95%的块的亮度和色度标称角度相等。在Fig2(b)中,水平轴表示亮度和色度标称角度相同时,亮度和色度delta角度的差值。可以看见,当亮度和色度标称角度相同时,55%的块亮度和色度delta角度相同。此外,亮度分量的delta角度在相邻块间有很高的空域相关性。Fig3显示,当前亮度块和其中一个相邻块标称角度相等的概率超过80%。

本文算法

跨分支模式编码

由Fig2可知,当亮度和色度标称角度不同时,delta角度不为0的概率仅为5%。因此,为了减少传输delta角度的码率和编码时间,只有亮度和色度标称角度相同时才传输色度的delta角度,否则不在码流中传输色度的delta角度,在解码端默认为0。这样,色度分量只有8个标称角度和6个非零delta角度。为了减少性能损失,这8个标称角度和6个非零delta角度都需要进行全RDO计算。和libaom v2.0相比,对于all intra配置平均节省4%的编码时间,而BD-rate损失很小。

在AV1中,亮度和色度分量在传输delta角度时使用相同的累积密度函数(Cumulative Density Function ,CDF)和代价函数。这种设计是基于亮度和色度的delta角度概率分布相似的假设。但是,根据前面的观察。在大部分情况下亮度和色度的delta角度概率分布不同。因此,使用不同的CDF和代价函数可以更好的捕捉亮度和色度delta角度各自的统计特征。

根据前面的观察,色度的delta角度和亮度的高度相关,使用亮度delta来生成色度delta的CDF比使用色度标称角度生成色度delta的CDF更好,这样能更好的利用亮度和色度分量的相关性。这样,当亮度和色度delta角度相等时,传输色度delta角度的代价会减小。此外,亮度和色度delta角度相等的概率由50%变为90%。

有两种方法可以使色度delta角度依赖于亮度delta角度。方法一Method #1  ,仅当亮度和色度标称角度相同时才传输色度delta角度。方法二Method #2,使用两种CDF,当亮度和色度标称角度相同时使用一种CDF,不同时使用另一种CDF。

上下文自适应的模式编码

根据Fig3观察,当亮度标称角度和至少一个相邻块的标称角度相同时,delta角度相同的概率超过80%。基于此,对亮度模式编码可以使用上下文自适应的方法。当当前块的标称角度和其中一个相邻块的标称角度相同时,则其delta角度的CDF由其相邻块的delta角度建模。当上方和左侧相邻块的标称角度都相同时,优先考虑上方。

实验结果

使用All intra配置,YUV的BD-rate按6:1:1计算。QP={28,35,42,49}。使用的命令行为,

跨分支模式编码的结果如表2,

上下文自适应模式编码的结果如表3,

感兴趣的请关注微信公众号Video Coding

ICASSP2021:AV1帧内模式编码改进相关推荐

  1. H.266/VVC技术学习之帧内模式编码

    在HEVC中,支持33种角度模式.DC模式和Planar模式,为了减少编码比特,使用长度为3的最可能模式列表.在VVC中,引入了ISP模式.MRL模式.MIP模式等,帧内模式编码时需要先对这些模式的f ...

  2. AV1标准特色编码工具简介

    文章目录 1. 编码单元划分结构 2. 帧内预测技术 3. 帧间预测技术 4. 变换 5. 环内滤波和编码后处理 作为新一代性能优异的开源编码标准,AV1收到越来越多企业的青睐.AV1编码标准继承自G ...

  3. AV1,实时编码READY

    点击上方"LiveVideoStack"关注我们 一款编码器的成功,不仅需要大量的金钱,还需要耐心.AV1定稿三年后,是时候为它庆祝了. 文 | 包研 不知不觉,距离AV1完成定稿 ...

  4. ECM技术学习:解码端帧内模式推导(Decoder-side Intra Mode Derivation )

    解码端帧内模式推导(DIMD)技术是之前在VVC标准化的过程中提出的技术,因为其在解码端引入的复杂度较高,因此没有被VVC采纳.为了探索下一代压缩标准,JVET最近设立了最新的ECM参考平台,将DIM ...

  5. sad代价计算_转载:H.264帧内模式选择以及代价计算相关知识

    转自:http://blog.csdn.net/xingyu19871124/article/details/7721374 标签: h.264 优化 算法 c 测试 2012-07-06 10:57 ...

  6. ECM技术学习:基于模板的帧内模式推导(Template based intra mode derivation )

    和基于梯度的帧内模式推导类似,ECM中还使用了基于模板的帧内模式推导. 基本原理:对于当前待预测CU,在模板区域计算预测像素和重建像素的SATD,从MPM列表中选出两个SATD最小的预测模式mode1 ...

  7. 自适应关于帧场编码问题

    H.264对帧场编码问题支持的比较完整,因为曾经有人问我,在h.264码流中,是否有判别帧场编码的元素. 我当时对H.264如果认定码流帧场编码不太了解,更别说是宏块级帧场编码了. 其实H.264对帧 ...

  8. 【FFmpeg】使用 FFmpeg 处理音视频格式转换流程 ( 解复用 | 解码 | 帧处理 | 编码 | 复用 )

    FFmpeg 系列文章目录 [FFmpeg]Windows 搭建 FFmpeg 命令行运行环境 [FFmpeg]FFmpeg 相关术语简介 [FFmpeg]FFmpeg 相关术语简介 二 [FFmpe ...

  9. verilog乘法器以及booth编码改进

    第一章 整数乘法器 1.1 整数的概念 整数在IEEE 的规定上有,短整数short integer , 中整数integer 和 长整数long integer ,它们之间的关系如下: 整数 字节空 ...

最新文章

  1. Algs4-2.2.29自然的归并排序(未解决)
  2. Keil 汇编窗口无法设置断点,disassembly显示错误,Keil汇编解析错误
  3. 三步骤定位Windows崩溃进程
  4. 【小白学PyTorch】8.实战之MNIST小试牛刀
  5. 历经3年的打磨,数据构建及管理平台Dataphin增加了什么新功能?
  6. 并发编程之多进程3 (生产者与消费者模型) 回调函数
  7. 【Heritrix基础教程之1】在Eclipse中配置Heritrix
  8. [C++基础]034_C++模板编程里的主版本模板类、全特化、偏特化(C++ Type Traits)
  9. 做软件也是要有点追求的
  10. 合肥工业大学机器人技术期末_机器人技术基础期末考试复习资料
  11. Android如何进行反编译
  12. [Transformer]SPViT:Pruning Self-attentions into Convolutional Layers in Single Path
  13. SVG,收藏夹图标以及我们可以用它们做的所有有趣的事情
  14. MATLAB-数字图像处理 量化
  15. python实现12306自助刷票下单
  16. 系统渗透与防护——信息收集与暴力破解
  17. Ubuntu下安装Python
  18. 手把手教你在centos7安装k8s集群
  19. 《乱音盒子》之《隐者小调》
  20. 虚拟机上搭建Ubuntu系统步骤

热门文章

  1. 【HMS Core】运动健康服务获取上床时间api返回 resultCode:1001 data:api permission exception
  2. Java 标准与规范
  3. android 局域网 推送,通过RabbitMQ实现消息推送功能 可同时实现局域网推送和广域网推送...
  4. 微信公众号开发 https访问的封装
  5. python爬虫(廖雪峰商业爬虫)
  6. 易飞ERP 文件服务接口
  7. 媒体查询中常用的媒体类型罗列
  8. 如何在内存中执行二进制代码之win平台
  9. 再见了数仓开发!我选有钱有话语权的大数据架构师!
  10. c++ Eigen库中的矩阵分析为什么使用QR分解