专栏首页媒矿工厂LCEVC(MPEG-5 Part 2)综合指南

LCEVC(MPEG-5 Part 2)综合指南

本文为媒矿工厂编译的技术文章

原标题:Comprehensive Guide to LCEVC (MPEG-5 Part 2) - Low Complexity Enhancement Video Coding

原作者:Krishna Rao Vijayanagar

原文链接:https://ottverse.com/lcevc-mpeg5-part2-low-complexity-enhancement-video-coding-guide/

翻译整理:刘孝勇

LCEVC(MPEG-5 Part 2)和VVC(Versatile Video Coding)、EVC(EssentialVideo Coding)是MPEG最新提出的三种编码器,LCEVC全称是“Low Complexity Enhancement VideoCoding”,旨在使用基本码流和增强码流提高现有编码器的压缩效率,同时几乎不增加编码复杂度。

在日内瓦举办的ITU未来媒体研讨会上,V-Nova公司的 CEO和联合创始人Guido Meardi对LCEVC编码器做了详细的介绍[1],他称LCEVC是“一种改进其他编码器的编码器”。V-Nova公司研发的Perseus编码器推动了LCEVC标准的制定,更多信息请点击这里(https://www.v-nova.com/v-nova-video-compression-technology/)。

本文主要分为四部分:

  • LCEVC编码器是什么及标准化的原因
  • 编解码器如何工作
  • 复杂度理论考量
  • LCEVC编码器可能的应用

什么是LCEVC编码器?

LCEVC编码器是一种具有低复杂度开销的“改进其他编码器的编码器”,输出是基本码流和增强层的组合,基本码流由现有的编码器(例如AVC、HEVC、VP9、AV1等)产生,有条件地使用增强层可以提高视频质量。

如果解码器/终端设备支持LCEVC,那么增强层会被解码,否则只使用基本解码器解码码流并把视频渲染给用户,这可以确保LCEVC的向后兼容性,不会影响到终端用户的体验,从而提高了LCEVC编码器的实用性。

概念图如下图所示:

图1 LCEVC架构图

LCEVC的关键要求

MPEG规定了LCEVC项目的关键要求[2],可以总结为以下几个目标:

  • 当增强第n代MPEG编码器(例如AVC)的时候,合计码流的压缩效率明显高于编码全分辨率视频的第n代MPEG编码器,同时尽可能地接近编码全分辨率视频的第n+1代MPEG编码器(例如HEVC),带宽和操作条件符合大众市场的配置。
  • 编码和解码合计的全分辨率视频(即基本码流加增强层)的复杂度分别与单独编解码全分辨率视频的基本编码器和解码器有可比性。

更简单地说,LCEVC编码器的目标是:

  • 以基本编码器是AVC为例,LCEVC(基本层和增强层)的压缩效率应该比编码全分辨率视频的AVC更高。
  • 以基本编码器是AVC为例,LCEVC编解码器的复杂度(编码和解码)应该与编解码全分辨率视频的基本编解码器有可比性,也就是说,LCEVC不应该为了提升压缩增益而显著增加编码器/解码器的复杂度。

此外,MPEG文档[3]也讨论了关键实现方案和非技术性要求:

  • 所有能够解码基本码流的设备应能够解码视频流,不需要特定的固件和操作系统支持,在硬件中资源利用率(例如处理功率、电池消耗等)与解码全分辨率视频的基本解码器大致相同。
  • 所有的网络浏览器应能够解码高分辨率视频,不需要插件和/或浏览器升级,例如通过HTML5 javascript。
  • 附加数据流应与现有生态兼容,例如广告插入、元数据管理、CDNs、DRM/CA和网络协议(如DASH、HLS、MMT和SS)。
  • 编码视频流所需的总处理功率应与单独编码全分辨率视频的基本编码器有可比性。

最后,LCEVC编码器的目标可以总结为:

  • 在几乎不增加编码复杂度的基础上提高其他编码器的压缩效率。
  • 向后兼容以便不支持解码LCEVC增强层的旧有设备和软件可以解码来自基本编码器的码流。

LCEVC编解码器的架构

编码器

发表在ITU期刊上的文献[4]给出了LCEVC编码器的结构框图(图2),下面介绍编码器的内部工作原理。

图2 LCEVC编码器框图

上述框图清楚地描述了LCEVC编码器的编码过程:

1. 下采样:

全分辨率图像通过两个下采样模块产生两个下采样的图像(在第一级和第二级下采样的输出处分别有一个)。

2. 使用基本编码器压缩:

基本编码器获取第二级下采样器的输出,使用可选的“基本编码器”(AVC、HEVC、VP9、AV1等)压缩。

3. 上采样和L1层级压缩:

  • 接着,基本图像(被下采样了两次)被上采样一次
  • 使用被上采样的图像和第一级下采样器的输出计算差值图像
  • 差值图像会经过变换、量化和熵编码,最终的输出作为“L1系数层”进行传输

4. 准备L2级的输入:

L1级的编码输出被重建,然后经过上采样产生原始分辨率的重建图像(因为现在已经进行了两次上采样)。

5. L2层级压缩:

在L2层级,已经有了原始图像和重建图像(来源于基本层的基本图像)

计算这两个图像的差值,然后压缩差值图像产生L2系数层

可根据需要执行时域预测,产生的预测系数可以被压缩并传输到终端设备

6. 编码稀疏填充的图像:

这是一个巨大的技术挑战,因为离散余弦变换(DCT)利用的是像素之间的空间相关性,LCEVC编码器通过引入小的变换核(2x2和4x4)来避免压缩大量的信息。

7. 增强层系数的熵编码:

考虑到初始信息非常稀疏以及小型2x2和4x4变换核的使用,LCEVC中使用了游程编码器(RLE,Run Length Encoder)和前缀编码器(Prefix Coding Encoder),RLE是一种非常简单的熵编码方法,过去已成功地用作CAVLC(H.264/AVC)的基础。

8. 时域预测:

在原始的全分辨率图像和重建的全分辨率图像之间执行,产生第二层的增强系数和编码的预测向量。

注意:大型变换核不适合用来压缩稀疏信息,例如对于一个大部分被填充为黑色像素、随机分布了20个白色像素的32x32宏块(2%的白色像素),应用32x32 DCT变换后,白色像素将在变换和量化过程中丢失,这可能适用于正常的图像压缩,但是在压缩“差值”图像的时候,保留稀疏区域是非常重要的。

解码器

LCEVC解码器的结构框图[4]如图3所示,因为解码过程与编码过程相反,这里不再赘述。

图3 LCEVC解码器框图

图4[1]直观地展示了LCEVC解码器的工作过程,包括以下几个步骤:

  • 解码器获取小图像作为初始输入,小图像被上采样后产生“初始中间图像”(Preliminary Intermediate Picture)。
  • 然后,初始中间图像加上第一个增强子层产生“组合中间图像”(Combined Intermediate Picture),解码的第一个阶段完成。
  • 组合中间图像被上采样后产生“初始输出图像”(Preliminary Output Picture),现在图像是全分辨率图像。
  • 初始输出图像加上第二个增强子层产生“组合输出图像”(Combined Output Picture),可选择地,如果增强层存在时域预测,那么还需要结合预测系数才能产生最终的输出图像。

需要注意的重要一点是,基本解码器的输出需要经过两个上采样阶段才可以得到全分辨率图像,当设备不支持解码LCEVC增强层时,可以直接渲染基本解码器的输出,因此很好地维持了LCEVC的向后兼容性。

图4 LCEVC解码过程

LCEVC编解码器的复杂度

理解了LCEVC编解码器的工作原理,接下来继续介绍编码器的复杂度,很明显:

  • LCEVC编码器的复杂度与基本层使用的编码器(即AVC、HEVC、AV1或者最新的编码器(像VVC)等)的复杂度相关联。
  • LCEVC编码器的复杂度与基本层的分辨率相关联,因此与选择的下采样步长有关。举例来说,如果全分辨率视频是1920x1080p,经过两级下采样(每一级在水平和垂直方向上的下采样率都是2),那么基本层是480x270p,比较两个编码场景:
  • 基本编码器为AVC的LCEVC编码器,输入=1080p,基本层输入=270p(AVC编码器处理的图像尺寸);
  • 独立的AVC编码器,输入=1080p。

在任意传统的视频编码器(例如AVC或HEVC)中,编码复杂度随分辨率的降低而降低(其他参数不变),也就是说,压缩1080p比270p需要做更多的工作,因此LCEVC处于优势地位。

然而也出现了另一个问题:增强阶段的编码复杂度如何呢?

从理论分析和实验测试来看,增强阶段对编码复杂度的贡献较小,主要原因之一是增强阶段的处理过程都很简单。

从编码器的结构框图中可以看到,增强层没有帧间预测过程,即没有P、B图像或分级预测,众所周知,现代编码器像AVC、HEVC、AV1的编码复杂度的90%(或者更多)都来自帧间预测。

增强层的压缩与独立图像的压缩非常的相似(类似于JPEG压缩),即使不使用像块级并行化之类的先进技术也可以大幅降低编码复杂度。

LCEVC编解码器的应用

LCEVC有三个巨大的优势(除了其他优势之外):

  • 减少编码和解码的时间(即减少编解码复杂度)
  • 通过使用基本层和增强层减少码率
  • 向后兼容性和允许只解码基本层的能力

LCEVC在体育节目广播中的应用

LCEVC在体育节目广播领域具有很高的应用价值,Guido Meardi在SVGEurope(https://www.svgeurope.org/blog/headlines/lcevc-explainer-why-the-enhancement-codec-could-be-a-value-add-for-sports-broadcasters-in-uncertain-times/)的一次采访中说过:借助LCEVC可以在不影响视频质量的情况下减少传送的数据量,简化对大量并发流量的有效管理—可以解决用户群体聚集性观看电视转播体育节目的问题。

在写这篇文章的时候(2020年7月20日),体育节目转播正在受到诸多因素的影响:

  • 冠状病毒(COVID-19)正在世界范围内蔓延。
  • 目前还没有有效的疫苗,有报告表明疫苗大规模生产和管理的时间可能延长到2021年。
  • 可以肯定,为了防止COVID-19在社区的传播,近期各个国家的体育馆不会允许使用人数达到30000-40000人。
  • 但是,体育队伍将是一个例外,政府将在落实防控措施(在比赛前后一周内不允许运动员探望家人,只允许少数裁判和维护人员进入体育馆等)的基础上举办室内体育赛事活动。

这些限制让体育节目广播变得重要起来,那些本来要到体育馆现场观看比赛的“人群”现在会通过互联网/智能电视收看比赛,他们期望获得更好的传输质量,LCEVC可以在其中发挥巨大的作用,主要表现为降低端到端延迟、提高编码效率并减少带宽需求、提高视频质量等。

LCEVC应用于在线学习和在线教育

LCEVC在教育领域也有广泛的应用前景,在线教育逐渐走向成熟(可惜是由于COVID-19),这必然会给已经很紧张的家庭宽带连接带来更多的负担,LCEVC的贡献在于减少带宽的消耗,除了分层的视频编码方法以外,由于大部分的在线学习视频是典型的“头肩像”视频或者图形,所以它们更容易被LCEVC中的现代视频编码器压缩。

结语

在视频压缩领域,LCEVC连同VVC、EVC一起会让2020年和2021年变得非常有趣,伴随着AV1的竞争以及编解码器领域长期存在的专利/授权之争,LCEVC将在现有的编解码器授权中扮演一个有趣的角色。

参考文献:

[1]https://www.itu.int/en/ITU-T/Workshops-and-Seminars/20191008/Documents/Guido_Meardi_Presentation.pdf

[2]https://mpeg.chiariglione.org/standards/exploration/low-complexity-video-coding-enhancements/requirements-low-complexity-video

[3]https://mpeg.chiariglione.org/standards/exploration/low-complexity-video-coding-enhancements/requirements-low-complexity-video

[4]https://www.itu.int/dms_pub/itu-s/opb/journal/S-JOURNAL-ICTS.V3I1-2020-12-PDF-E.pdf

[5]https://ottverse.com/lcevc-mpeg5-part2-low-complexity-enhancement-video-coding-guide/

本文分享自微信公众号 - 媒矿工厂(media_tech),作者:媒矿工厂

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【视频编码】 Content Aware ABR技术(一)

    现在越来越多的人在手机、平板、笔记本等移动终端设备上观看在线视频。对于视频服务提供商而言,视频的存储和带宽资源的消耗在持续增加。如何为成千上万的终端用户高效地传...

    用户1324186
  • HVS和感知编码

    本次Video Insider采访的对象是来自动漫产业公司Crunchyroll/Ellation的视频工程师Chris Kennedy,主要谈的是关于HVS(...

    用户1324186
  • 视频编码中编码和计算效率对比

    本文是来自video@scale 2019的演讲,演讲者是Ioannis Katsavounidis,是Facebook的研究科学家。演讲主题是视频编码中编码和...

    用户1324186
  • 一对一视频聊天软件开发中,用到的编码器有哪些?

    在一对一视频聊天软件开发过程中,涉及到众多的音视频编解码技术,例如:视频编解码、音频编解码、硬件编解码和音视频加密等等。要实现这些技术,肯定要选择合适的编码器。...

    就爱吃小笼包
  • Netty 总结篇

    Netty一个主要的目标就是促进“关注点分离”:使业务逻辑从网络基础设施应用程序中分离。不仅仅是Netty框架,其他框架的设计目的也大都是为了使业务程序和底层技...

    luoxn28
  • Python编写渗透工具学习笔记一 | 0x03用多线程扫描某一网段中存活的主机

    0x03用多线程扫描 某一网段中存活的主机 (如果渗透进了内网,还可以扫描内网上里的存活主机) 脚本利用演示+实现思路分析 实现思路: 调用终端执行ping命令...

    安恒网络空间安全讲武堂
  • Python中如何实现Switch/Case语句?

    跟其它语言有所区别,Python中并没有Switch/Case语句。那么,该如何实现Switch/Case语句呢?

    测试小兵
  • python编码的意义

    当你用python打开一篇中文文档,准备读取里面的数据开始实验... 当你处理好你的数据,打算打印出易于阅读的结果给boss检查... 甚至当你刚刚开始编写自己...

    py3study
  • 自学编程难在哪里?教你如何解决

    他们要么看书学习,通过各大论坛网站找资源学习,要么通过线上课堂学习,更或者在线下接受培训。

    一墨编程学习
  • Mysql使用小tips

    1.IFNULL(expr1,expr2)      如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返...

    LhWorld哥陪你聊算法

扫码关注云+社区

领取腾讯云代金券