博客
关于我
环路滤波(四):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/

    你可能感兴趣的文章
    Nest.js 6.0.0 正式版发布,基于 TypeScript 的 Node.js 框架
    查看>>
    Netpas:不一样的SD-WAN+ 保障网络通讯品质
    查看>>
    Netty WebSocket客户端
    查看>>
    Netty工作笔记0011---Channel应用案例2
    查看>>
    Netty工作笔记0014---Buffer类型化和只读
    查看>>
    Netty工作笔记0050---Netty核心模块1
    查看>>
    Netty工作笔记0084---通过自定义协议解决粘包拆包问题2
    查看>>
    Netty常见组件二
    查看>>
    netty底层源码探究:启动流程;EventLoop中的selector、线程、任务队列;监听处理accept、read事件流程;
    查看>>
    Netty核心模块组件
    查看>>
    Netty框架的服务端开发中创建EventLoopGroup对象时线程数量源码解析
    查看>>
    Netty源码—2.Reactor线程模型一
    查看>>
    Netty源码—4.客户端接入流程一
    查看>>
    Netty源码—4.客户端接入流程二
    查看>>
    Netty源码—5.Pipeline和Handler一
    查看>>
    Netty源码—6.ByteBuf原理二
    查看>>
    Netty源码—7.ByteBuf原理三
    查看>>
    Netty源码—7.ByteBuf原理四
    查看>>
    Netty源码—8.编解码原理二
    查看>>
    Netty源码解读
    查看>>