专栏首页媒矿工厂JPEG XS 图像编码新标准

JPEG XS 图像编码新标准

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

原标题:JPEG White paper: JPEG XS, a new standard for visually lossless low-latency lightweight image coding system

JPEG白皮书连接:https://jpeg.org/static/whitepapers/jpeg-xs-whitepaper.pdf

翻译整理:武国庆

引言

JPEG XS是JPEG委员会(正式名称为ISO / IEC SC29 WG1)的新国际标准。它具有可互操作的低延迟轻量级编码系统,可在任何AV市场中用作夹层编解码器,从而提供视觉无损图像压缩。目标用例包括通过专业视频链接(SDI、IP、以太网)的视频传输、实时视频存储、内存缓冲区、全方位视频捕捉和渲染以及压缩传感(例如在相机和汽车行业)。这意味着对ASICs、FPGAs、CPUs和GPUs等多种实现技术的最佳支持。此外,该编解码器允许精确地设置目标比特率,以匹配可用带宽,如千兆以太网,它提供端到端延迟等于帧的一小部分。对于4:4:4和4:2:2图像,典型的压缩比都高达10:1,也可以更高,这取决于图像的性质或目标应用程序的要求。本白皮书介绍了这个新标准的主要使用案例和关键特性。

随着视频分辨率、帧速率和要管理的流数量的不断增加,视频带宽需求正在快速增长。视频链接和信道的容量也在增长,不过速度较慢。广播行业的视频流传输很好地说明了这种情况:制造商目前正在从HD切换到UHD,需要12G-SDI或10Gbps以太网,并且已经在研究8k。因此,在当前的系统和基础设施中,未压缩的存储和实时视频传输变得难以承受和管理,而下一代信道仍在测试中尚不可承受。面对这一现实,使用轻量级压缩非常有吸引力,因为它允许在连续几代基础设施和协议之间实现持久的转换。

这种轻量级压缩方案应该允许提高分辨率,帧速率和流数量,同时保护未压缩流的所有优点,即互操作性、视觉无损的质量、低功耗、编码和解码中的低延迟、易于实现、芯片尺寸小和通用CPU上运行的快速软件。在这种情况下,JPEG委员会标准化了一个轻量级编解码器JPEG XS。

用例和目标应用程序

JPEG XS是当今使用未压缩视频的备用技术。但是,它专门为满足现场制作,广播和数字影院工作流,Pro-AV市场,虚拟现实(VR)游戏和压缩传感的需求设计的。

视频链接和IP网络传输

在广播演播室中,大规模部署了SDI基础设施,主要是HD-SDI (1.5 Gbit/s)或3G-SDI (3 Gbit/s)。然而,广播公司现在正逐步转向IP。目前优先考虑用于远程生产的1千兆以太网[GE]链路或用于内部工作室的10 GE基础设施。25、40或100 GE链路通常不能负担得起。鉴于可用带宽,因此无论是在工作室还是在远程制作中,真正的无压缩视频都不再是一种选择,因为需要支持4K,8K和更高帧率[fps]。

因此,可以在视觉上保持未压缩流的质量的轻压缩似乎是一个很好的解决方案,可以通过部署基础设施来传输即将到来的视频流,如表1所示。

表1 用于IP视频传输的典型JPEG XS用例

除了视觉无损的质量,对多个编码和解码周期的鲁棒性也是至关重要的,因为它允许链接多个设备来重新压缩信号。JPEG委员会测试了JPEG XS至少10个编码-解码周期的鲁棒性。此外,一个编码和解码周期所带来的额外延迟应低于几行,以避免不同处理链处理的信号之间出现任何人为可察觉的延迟。

实时视频存储

与视频流传输类似,高分辨率流的存储需要轻量级压缩,以便能够在成本较低的存储设备上实时写入。例如,相机使用SSD驱动器或SD卡等内部存储来存储大量图像,但这些设备上的访问速率是有限的。此外,对于视频传输情况,多个编码-解码周期必须提供与单个压缩和解压缩操作相同的质量。

帧缓冲压缩

为视频处理设备内的缓冲区启用轻量级压缩可以极大地降低系统的外形尺寸,减少互连线的数量,并延长电池供电系统的电池寿命。例如,JPEG XS可以使用如下:

• 高刷新率显示器的缓冲区(120至600 Hz)

• 高速相机的存储和回放缓冲器

• AVC / H.264或HEVC / H.265硬件编解码器内的参考帧缓冲器

最后一个用例(参考帧缓冲区压缩)特别有趣,因为便携式视频设备使用外部SDRAM芯片来存储帧间预测机制中涉及的参考帧。这种SDRAM的功耗与所需的访问带宽成正比:即将到来的超高清分辨率(4K或8K)将以一种对功耗敏感的设计无法负担的方式增加这种编解码器的总功耗。非常低的复杂性压缩似乎是一个良好的解决方案,可以将消耗控制在合理的范围内。

全方位视频捕捉和渲染

JPEG XS还可用于虚拟或增强现实(VR / AR)的头戴式显示器。为了获得沉浸式的体验,需要具有超过800万像素和每秒90帧的分辨率的显示器。这种应用需要非常低延迟的编码方案,以确保移动和显示之间的紧密同步。

压缩传感

随着分辨率的提高,越来越多的图像传感器应用于工业环境中。在这种情况下,JPEG XS提供了一种方便的方法来确保在工业网络中传输图像序列。

例如,汽车部门最近的发展涉及使用越来越多的高分辨率和帧率的图像传感器。这些传感器通常使用拜耳模式捕捉图像。需要以最大的响应速度处理来自这些传感器的数据,因此意味着整个数据流的延迟非常低。在实现方面,由于传感器的数量有限,考虑热和在各种气候条件下的必要操作,需要尽可能地限制功耗。

JPEG XS编解码器的主要特征

根据上面描述的用例,已经确定了以下需求,它们现在是新标准的主要特征。

视觉无损的质量。在原始图像和压缩图像之间有难以察觉的闪烁。对于4:4:4和4:2:2图像,典型的压缩比都高达10:1,但也可以根据图像的性质或目标应用程序的要求更高。

多代鲁棒性。例如多达10个编码-解码周期没有明显的质量下降。

多平台互操作性。JPEG XS用例需要在几个不同的平台上实时实现:CPU、GPU、FPGA和ASIC。当实现的编解码器具有特定程度的并行性时,这些平台中的每一个都能得到最佳利用。例如,多核CPU实现将受益于粗粒度并行,而GPU或FPGA将更好地利用细粒度并行。因此,为了最佳地支持不同的目标平台,JPEG XS编解码器需要允许不同类型的端到端并行。更重要的是,在不牺牲下面将描述的低复杂性和低延迟特性条件下,在给定平台上实时编码应当允许在任何其他平台上实时解码生成的码流,

低复杂性。硬件和软件的复杂性都很低。 为了使JPEG XS成为替代未压缩视频传输的候选者,需要实现非常低复杂性。实际上,在软件方面,JPEG XS的设计使i7处理器能够实时处理4k 4:4:4 60p的内容。在硬件方面,FPGA实现不应该需要任何外部存储器,并且当应用于4k 4:4:4 60p的内容时,不应占用超过Artix7 XC7A200T的50%或Cyclon5 5CEA9的25%。

低延迟。如上所示,无论是在视频传输应用程序,还是在AR /虚拟现实的应用程序中,还是在需要信号与人机交互之间紧密同步的任何其他用例中,所有处理步骤都会累积延迟,要保证累积的延迟低于人类感知阈值。为此,基于来自不同应用领域的输入,JPEG XS提供了可伸缩的算法延迟,范围从少量线路到单个线路的编码-解码器组合套件。

与最先进的编解码器进行比较

根据上述要求,很容易看出现有的标准不符合电影和广播应用的需要。JPEG- LS (ISO/IEC 14495-1 | ITU-T Rec. T.87)和JPEG (ISO/IEC 10918-1 | ITU-T Rec. T.81)及其后续的JPEG- XT (ISO/IEC 18477-1)提供了更高位深度的向后兼容支持,这使得精确的速率控制变得困难,并且的实现的结果显示了一帧的延迟。JPEG2000 (ISO/IEC 15444-1:2004 | ITU-T Rec. T.800)使用一个复杂的熵编码器,这意味着许多硬件和软件资源用于实时实现。HEVC (ISO/IEC 23008-2 | ITU-T Rec. H.265)作为一种分布式编解码器,需要极大的编码复杂性而不确保多代鲁棒性。另一方面,VC-2 (SMPTE ST 2042-1)复杂度较低,但应用技术只能提供有限的图像质量。正如SMPTE公开文档(SMPTE RDD 36)所记录的那样,ProRes基于16x16像素的宏块,因此不可能在32行以下实现低延迟。此外,熵编码使快速CPU实现具有挑战性。DSC的最终目标是基于ASIC的显示压缩,使得FPGA和GPU上的高效实现变得困难。

考虑到现有编解码器的这些缺点,JPEG委员会已经详细阐述了JPEG XS,它提供了精确的速率控制,延迟低于32行,适合于低成本FPGA。要求压缩质量优于VC-2,同时支持在不同平台上实现。

JPEG XS配置文件和格式

JPEG XS核心编码系统采用离散小波变换(DWT),然后对4个连续系数组的幅值水平进行熵编码,实际系数值采用原始编码。为了允许不同级别的延迟和复杂性,定义了几个配置文件,每个配置文件具有最大的垂直小波分解。每个配置文件都针对特定的应用程序,如表2所示。

表2 JPEG XS配置文件

Main

Light

Light-subline

High

• 默认配置文件• 1个垂直DWT• 自然的/CGI/屏幕 内容• 应用于广播,Pro-AV,帧缓冲器,显示链接

• 复杂度低• 效率稍差• 1个垂直DWT• Natural 内容• 应用于广播,工业相机,相机内压缩

• 缓冲少• 效率差• 无垂直DWT• Natural 内容• 应用于低成本的应用程序

• 更高的质量• 2个垂直DWT• 自然的/CGI/屏幕 内容• 应用范围与Main配置文件相同,但是用于高端的设备和电影远程制作

除了核心编码系统和配置文件,JPEG委员会也标准化了不同的JPEG XS码流的传输和容器格式,允许在不同框架内使用不同协议存储和传输JPEG XS图像,如表3所示。

表3 JPEG XS传输和容器格式

格式

类型

主要目的

扩展名

标准文件

JXS

JPEF XS文件格式

存储单个图片

.jxs

ISO/IEC 21122-3

MP4

ISO基础媒体文件格式

存储视频

.mp4

ISO/IEC 21122-3

HEIF

高效图像文件格式

用于存储混合图像和视频内容

.heif

ISO/IEC 21122-3

MPEG-2 TS

传输流

用于JPEG XS的MPEG-2传输流

n/a

ISO/IEC 13818-1Ed. 7th AMD1

RTP

RTP有效载荷格式

JPEG XS的IP传输

n/a

即将发布的IETF RFC

SMPTE 2110

系统流

在SMPTE 2110中封装压缩视频流

n/a

即将发布的SMPTE 2110-22

性能

为了验证这个新开发的编解码器是否满足所有要求,JPEG委员会分析了在征求建议之后提交的不同技术。已经评估了复杂性和延迟以及质量,并且几轮核心实验进一步改进了规范。在质量方面,对各种内容进行了客观和主观的评价,包括自然的,CGI,屏幕或“病理”图像。结果表明在目标压缩范围内满足视觉透明度要求。下图显示了JPEG XS与VC-2或JPEG 2000的低延迟性(使用高度为8行的平铺块和基于平铺块的速率分配)相比的代表性示例。如图所示,JPEG XS优于VC-2,其2个垂直小波变换轮廓通常与JPEG 2000相同,有时一个在前面,有时另一个在前面。

图1 JPEG XS与VC-2或JPEG 2000的低延迟性对比

结论

JPEG XS是一种新的视觉无损低延迟轻量级图像编码国际标准,旨在补偿视频传输链路中不断增长的带宽需求。它是一种候选技术,无论今天在哪里使用未压缩视频。一个简单而有效的编码方案允许将延迟和复杂度保持在非常低的水平,同时在压缩比高达10:1的情况下实现视觉无损的质量。与其他现有的编解码器相比,质量评估显示出非常好的性能,特别是对于多代应用程序。

除了JPEG XS核心编码系统之外,还定义了多种配置文件和格式,允许在许多应用程序中使用这种新的编解码器。目前正在考虑和研究扩展和改进。在这些扩展中,可以引用HDR支持、Raw-Bayer改进支持和多光谱成像。

有关本标准的更多参考资料、信息和详细描述,请读者查阅官方的JPEG XS网页,网址为https://jpeg.org/jpegxs。

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

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

原始发表时间:2019-08-07

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 003.Docker容器管理

    docker容器可以理解为在沙盒中运行的进程。这个沙盒包含了该进程运行所必须的资源,包括文件系统、系统类库、shell 环境等等。但这个沙盒默认是不会运行任何程...

    木二
  • 【java基础】synchronized,volatile,transient关键字的作用

    《编程思想之多线程与多进程(1)——以操作系统的角度述说线程与进程》一文详细讲述了线程、进程的关系及在操作系统中的表现,这是多线程学习必须了解的基础。

    用户5640963
  • LINUX学习笔记

    locate:定位文件和目录【locate命令使用数据库来定位带有test这个词的文件或目录】

    天钧
  • CSV文件存储

    首先,打开 data.csv 文件,然后指定打开的模式为 w (即写入),获得文件句柄,随后调用 csv 库的 writer() 方法初始化写入对象,传入该句柄...

    不可言诉的深渊
  • 一步一步搭建前端监控系统:如何将网页截图上报?

    PS:本文关于Fundebug录屏功能的内容有些不准确的地方,比如录屏并非通过截图实现的,录屏插件的BUG也已经修复了,录屏并非只支持Chrome,录屏数据并不...

    Fundebug
  • 学会这几个Redis技巧,让你的程序快如闪电

    实际上NewLife.Redis是一个完整的Redis协议功能的实现,但是Redis的核心功能并没有在这里面,而是在NewLife.Core里面。

    JAVA葵花宝典
  • linux下tar命令行详解

    使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。 主选项: c 创建新的档案文件。如果用户想备份一个目录或...

    用户5640963
  • 003.NFS配置实例

    [root@imxhy ~]# yum -y install nfs-utils*

    木二
  • Android 获取多媒体信息

    Android 提供了 MediaMetadataRetriever 类来获取输入媒体文件的帧(Frame)和元数据(Meta data)。

    glumes
  • Python爬虫新手教程:微医挂号网医生数据抓取

    今天要抓取的一个网站叫做微医网站,地址为 https://www.guahao.com ,我们将通过python3爬虫抓取这个网址,然后数据存储到CSV里面,为...

    一墨编程学习

扫码关注云+社区

领取腾讯云代金券