博客
关于我
环路滤波(四):LMCS
阅读量:537 次
发布时间:2019-03-09

本文共 1024 字,大约阅读时间需要 3 分钟。

LMCS(Luma Mapping with Chroma Scaling)是VVC(Versatile Video Codec)中的一项新增技术,通常被称为“环路重整形”(in-loop reshaper)。该技术在HDR(高动态范围)和SDR(标准动态范围)视频编码中发挥着重要作用。

LMCS主要包括两部分:

  • 基于自适应分段线性模型的环内亮度映射
  • 基于亮度的色度残差缩放
  • 基于分段线性模型的环内亮度映射

    在VVC中,LMCS用于调整输入信号的动态范围,以提高压缩效率。对于HDR图像,其动态范围通常很高(例如10比特),而显示设备的显色器通常支持8比特的动态范围。这意味着需要对亮度信号进行色调映射,以匹配显示设备的范围。

    LMCS通过定义一个前向映射函数(FwdMap)和对应的逆向映射函数(InvMap)来实现亮度调整。FwdMap是一个分段线性模型,分为16个均匀的区间。由于只需要传输前向映射函数,码流的传输效率相对较高。
    每个Tile组(tile group)可以独立使用不同的映射模型。Tile组会传输两个标志位:

    • 一个标志位用于表示当前Tile组是否使用分段线性映射模型;
    • 另一个标志位用于判断当前Tile组是否启用了LMCS功能。
      在实际操作中,每个Tile组需要根据上述标志位的值传输对应的映射参数。

    具体而言,分段线性模型将输入信号的10比特范围(0-1023)划分为16个等长度的子区间。以10比特为例,每个子区间默认包含64个码字(1024/16)。实际传输的码字数量会影响映射函数的缩放因子。

    每个分段区间由InputPivot和MappedPivot数组定义。Generate方法如下:

  • OrgCW = 64(参考词条)
  • 对于i = 0到15,InputPivot[i] = i * OrgCW
  • MappedPivot数组的值基于传输的码字数(SignalledCW[i])计算。
    通过预定义的映射表(LUT)或动态计算(on-the-fly computation),映射过程可以实现。
  • 基于亮度的色度残差缩放

    如果当前Tile组未启用Dual Tree Partition并且使用了LMCS功能,则需要一个额外的标志位控制是否启用基于亮度的色度残差缩放。此外,在色度块的大小小于等于4时也禁止使用基于亮度的色度缩放。

    色度残差缩放主要依赖于相邻亮度预测块的平均值,将色度残差与平均亮度值缩放以优化色彩恢复效果。

    转载地址:http://wraiz.baihongyu.com/

    你可能感兴趣的文章
    PyMongo按多个关键点分组
    查看>>
    Pympress:强大的双屏PDF阅读器
    查看>>
    pymysql.err.InternalError: (1054, "Unknown column '27D24A3B' in 'where clause'")之错误解决
    查看>>
    pymysql.err.OperationalError: (1364, “Field ‘id‘ doesn‘t have a default value“)
    查看>>
    Pytorch Tensor 维度操作的形象理解 Tensor.unsqueeze() Tensor.squeeze()
    查看>>
    PyMySQL库对Mysql数据库进行增删改查与工具类封装
    查看>>
    pynput的基本介绍和使用
    查看>>
    pyodbc 通过 IIS7 连接到 MSSQL 2005 服务器
    查看>>
    PyPI 存储库中的 JarkaStealer:深入解析与防范措施
    查看>>
    Pyplot tutorial,Pyplot官方教程自翻译
    查看>>
    PyQ5学习笔记——使用内部槽函数关闭窗口
    查看>>
    PyQ5学习笔记——使用自定义槽函数关闭窗口
    查看>>
    PyQt MimeData 文件名
    查看>>
    PyQt QML Material Design 按钮背景不会改变
    查看>>
    PyQt QString转成python stirng
    查看>>
    PyQt QToolButton在焦点时不更新图标
    查看>>
    PyQt 正确使用 emit() 和 pyqtSignal()
    查看>>
    PyQT-将文件复制到剪贴板
    查看>>
    PYQT.如何在QTableView中插入小部件
    查看>>
    PyQt4 代码在 PyQt5 (QHeaderView) 上不起作用
    查看>>