.
38
1 引言
随着音视频技术的不断发展,节目制播有两个重要的演进方向:一是视频从现有的标清、高清视频向以4K/8K、VR/AR 为代表的高新视频发展,带来了数据量的显著增长,对存储和传输提出了巨大的压力和挑战;二是制播传输从传统SDI 架构向IP 架构过渡,极大地增加了系统部署的灵活性和便捷性。
以8K 超高清视频为例,原始视
摘要:随着4K、8K、VR、AR 等高新视频的发展,视频数据量显著增长,对节目制播传输提出了巨大的挑战。传统的制播域编码难以同时满足实时制播场景所需的低延时、低复杂度、高质量需求,因此国际标准组织开展了JPEG-XS 编码标准制定工作。本文跟踪调研了JPEG-XS 标准制定过程,研究了编码关键技术,分析了视觉无损压缩的主观评估方法,为该标准的实际应用和测试提供技术支持。 关键词:JPEG-XS 主观评估 视觉无损编码
* 本文受国家广播电视总局广播电视科学研究院2021年基本科研业务费项目“超高清视频实时制播浅压缩编码关键技术研究”(项目编号:
JBKY20210090 )资助
39
.
压缩方式来保证能够将视频数据实时写入存储设备。一般采用SSD 或者SD 卡进行存储,以4K/60p/4:2:2/10bit 为例,视频速率约10Gbps,如果SSD 卡写入速度为4Gbps,则需要的压缩比大概为2.5:1。 (3)视频内存缓冲
在视频处理设备内部实现轻量级的缓冲区压缩,可以大大减少设备尺寸、互连线的数量,延长电池供电系统的电池寿命。
(4)VR/AR 视频采集和渲染对于VR/AR 应用,为了实现沉浸式的体验,系统实现需要符合低延
时的需求,保证画面移动和显示的同步。2.2 技术需求
为了满足上述应用场景,标准技术需求[6]有如下几个方面。
视频分辨率可支持到8K,采样格式支持4:4:4/4:2:2,量化精度可支持到16bit,帧率可支持到120p,域支 持BT.2020等。
(2)编码质量视觉无损
在标准观看环境下,编码后的图像与编码前的图像质量差异不可察觉,且经过多次编解码处理后,图像质量不会严重退化。
(3)多平台的互操作性
可以在不同平台上实现实时编码,包括CPU、GPU、FPGA、ASIC 等软硬件平台。
(4)低复杂度
软硬件平台实现都应保证较低的复杂度。在与i7性能相当的软件平台上,可以实现4K/60p/4:4:4/8bit
实
压电陶瓷超声换能器登船梯时编解码;在与Xilinx Artix 7性能
相当的FPGA 硬件平台上,编解码复杂度不超过50%以上;在与Altera Cyclon 5性能相当的的FPGA 硬件平台上,编解码复杂度不超过25%以上。
(5)低延时
特别是针对VR/AR 应用,编解码
的延时应尽量小,不超过32行视频数据。2.3 技术提案选择
2016年7月JPEG 第72次会议上,工作组共收到7家有意向成员单位的技术介绍[7]-[13],不同提案比较如表2所示。2016年10月会议上,表2中的2~7项作为正式提案提交至工作组,工作组对6项提案进行了主客观测试。经多
次分析讨论,最终对技术提案2和技术提案6的技术进行融合,于2017年1月形成通用测试模型XSM,并以此为基准进一步改进和优化。
2017年10月,工作组发布标准草案;在2018年3月,工作组发布国际标准草案;2018年12月,工作组发布国际标准草案最终版;2019年5月,标准正式发布为ISO/IEC 21122-1:2019JPEG XS 低延时轻量级图像编码系统 第1部分:核心编码系统[14]。
除了核心编码外,MPEG 又陆续发布了ISO/IEC 21122-2:2019 编码档次和缓冲模型
[15]
、ISO/IEC
21122-3:2019传输和封装格式
[16]
、
表2 不同技术提案比较
序号提案名称技术特点技术需求符合性
1基于小波变换的静止图像编码(Fraunhofer)
为了降低复杂度,仅采用Haar 小波变换,
码率分配采用输出码率指导量化器的反馈环路实现。
符合技术需求,但性能不如提案2
2基于DCT 的编码(Fraunhofer& UnivStuttgart)
包括用于消除平滑图像区域块效应的平坦
度检测器和屏幕内容编码调板模式,码率分配逐行进行。
符合技术需求
3基于VC-2的改进编码(Barco Silex)降低了VC-2编解码延时,采用离散小波变换
复杂度低,但是编码质量差
4JPEG-LS 无损编码的派生版本(斯图加特大学 UnivStuttgart)
通过JPEG-LS 传输图像的下采样版本,
然后根据可用的速率,传输残余信号以恢复全分辨率
编码质量不满足需求
5JPEG-2000修改版本(新南威尔士大学 UNSW)采用低复杂度的Mel-Coder 熵编码替
代JPEG-2000高复杂度的EBCOT 编码,一次传输多个比特包,并使用基于逐帧统
计的启发式方法进行速率分配。
(1)FPGA 实现复杂度太高
(2)采用逐帧进行码率分配,场
景切换时质量下降明显
6基于小波变换的编码(Intopix)将各组小波系数组合在一起,并通过一元
码传输每组的位平面数,然后再对小波数据进行传输。与第一项提案不同的是,采
用5/3滤波。
符合技术需求
7HEVC 全I 帧简化版本(Cannon)
CTU 大小为8x8,预测方向只有4个(1)FPGA 实现复杂度太高
(2)一次编解码质量较好,但多
次编解码质量退化严重
.
40
ISO/IEC 21122-4:2019符合性测试[17]、ISO/IEC 21122-5:2019参考软件[18]。
3编码算法
3.1编码框架
JPGE-XS 编解码框架如图1所示,编码主要包括编码预处理、多分量
变换(MCT)、离散小波变换(DWT)、量化和熵编码等环节。
3.2编码预处理
对于输入的图像,首先对图像样本进行上采样操作,将精度转换为20bit。然后,每个样本减去一个固定值来去除信号的直流分量,使得处理后的样本范围基本以零为中心对称,目的是减小样本范围,便于编码。
3.3变换
如输入的图像是RGB 格式,则采
用与JPEG2000可逆分量变换(RCT)相同的MCT 变换去除RGB 分量的相关性,将RGB 格式转换为YUV 格式。经过MCT 变换后的信号采用5/3 DWT 进一步压缩图像信号能量,为保证低延迟,采用非对称的DWT,最多
应用5层水平分解和2层垂直分解。3.4量化
对小波变换系数采用预量化处理,将数据表示为符号位(+/-)和幅度电平,并去除低位8个位平面,该操作可以等效为采用了量化步长Δ=256的dead-zone 量化器。预量化过程并不
影响码率控制,主要是为了将数据的电平精度由原始的20bit 降低为12bit,有利于后续数据处理的软硬件实现。
经过预量化的小波系数值被划分为多个编码组(Coding Group),每个编码组由四个水平位置相邻的系数光触媒仿真花
组成。对于每个编码组,进行如下操作。其中,g 代表编码组,xi 代表编码组中的第i 个系数。M g 代表每个编码组(非零)位平面数量,也被称为最
高位平面位置(MSB position),然后对每个CG 采用dead-zone 量化、均匀量化等量化方式进行量化。
通过定义M g ,对于每个编码组内
的小波系数数值范围为[-2Mg -1,2Mg -1],经过量化步长为2T 的dead-zone 量化,可以截断T 个比特的精度,系数取值范
围变为[-2Mg-T -1,2Mg-T -1]。通过构造
合适的均匀量化器,可以将数据量化为
相同的取值范围。为了降低实现复杂度,采用加法和求和操作代替除法操作。
3.5熵编码
为了保证低复杂度,JPEG-XS 对量化系数采用了比较简单的熵编码。
具体步骤如下。(1)如果采用significance 编码,将8个编码组组成包含32个量化系数的significance 组,采用一个比特来标识是否需要传输。如果该组中所有
系数都为0,则不用编码,解码端将
所有值都置为0。
(2)对于每个编码组,将数据分为MSB position,用来指示位平面的数量;量化系数值;非零系数的符号。对于这三类数据,仅对MSB 采用熵编码。MSB position 编码可以直接采用固定长度的一元码进行编码,也可以采用上方已编码的MSB position 进
行预测,对预测残差采用可变长度编码。可选的,也可以采用游程编码来
跳过数值为0的编码组。
(3)对所有非零编码组的量化系数绝对值编码。
(4)对所有非零系数的符号位编码。
4编码类和级
针对不同编码应用场景,JPEG-XS 定义了三种编码类(Profile):Main Profiles、Light Profiles 和High Profiles。
Main Profiles 包含Main 422.10类和Main 4444.12类,支持水平1~5层分解、垂直1层分解的小波变换,
熵编码支持三种编码模式,量化包括
图1 编码框架
[19][20]
41
.
dead-zone 量化和均匀量化。
Light Profiles 包含Light 422.10类、Light 422.10类和Light 444.12类。Light 422.10类和Light 422.10类支持水平1~5层分解、垂直1层分解的小波变换,熵编码支持两种编码模式,量化仅采用均匀量化,也被称为low logic 类,属于编码复杂度最低的方案。Light-Subline 422.10类将图像垂直分为两部分,每部分单独编码,小波变换只有水平分解,没有垂直分解,量化包括dead-zone 量化和均匀量化,也被称为low memory 类,该类编码质量较低,但编码缓冲很小,可以节省实现成本。
High Profiles 包含High 444.12类High 4444.12类,支持水平1~5层分解、垂直2层分解的小波变换,熵编码也采用了额外的编码工具,属于编码质量最高的方案,面向台内节目
传输、高质量数字电视传输的压缩等。
不同编码类之间的主要差异如表3所示。
此外,为了区分不同的分辨率、帧率,标准中还定义了8个编码级(Level):2K-1(典型配置1920×1080 50p)、4K-1(典型配置3840×2160 30p)、4K-2(典型配置3840×2160 60p)、4K-3(典型配置3840×2160 120p)、8K-1(典型配置7680×4320 30p)、8K-2(典型配置7680×4320 60p)、8K-3(典型配置7680×4320 120p)、10K-1(典型配置10240×7680 30P)。
5 主观测试
在标准制定过程中,涉及的测试主要有两类:一类是不同提案之间的对比
测试,分析技术提案是否符合标准需求,用于确定标准基准。文献[21]中规定
了不同提案对比测试的测试方案,文献[22]给出了不同提案的客观测试结果,并根据测试结果确定了标准的基准,形成了参考编解码软件;另一类是标准基准确定后,评估编码标准的性能,也称为核心编码测试。核心编码测试一共进行了5轮测试,涉及编码工具选择测试、编码鲁棒性测试、编码时域稳定测试等4轮客观测试[23]- [26]和一轮主观测试[27]。主观测试是为了测试不同压缩比下能否满足视觉无损要求,测试中主要有三家参与单位同时开展主观测试,包括布拉格捷克理工大学(CTU)、洛桑联邦理工学院 (EPFL)和布鲁塞尔自由大学(VUB-imec)。
5.1 测试方法
通过对多种主观测试方法的对比分析,最终采用文献[28][29]所规定
的近似无损图像/图像序列质量评估方法进行评估。对于图像测试,将屏
表3不同编码类比较
Profile Main Profiles
Light Profiles High Profiles Main 422.10Main 444.12Main 4444.12Light 422.10Light 444.12Light Subline
422.10
High 444.12High 4444.12量化精度(bit)
8、10
8、10、12
8、10、128、10
8、10、12
8、10
8、10、12
8、10、12采样格式
4:0:04:2:2
设备故障诊断
4:0:04:2:24:4:4
4:0:04:2:24:4:44:2:2:44:4:4:4
4:0:04:2:2泵
4:0:04:2:24:4:4
4:0:04:2:2
4:0:04:2:24:4:4
4:0:04:2:24:4:44:2:2:44:4:4:4
小波变换水平1~5层分解、垂直1层分解水平1~5层分解、垂直1层分解水平1~5层分解,无垂直分解实物展示台
水平1~5层分解、垂直2层分解量化dead-zone 量化和均匀量化
均匀量化
dead-zone 量
化和均匀量化
dead-zone 量化和
均匀量化熵编码三种编码模式
两种编码模式
三种编码模式+额外的工具
编码复杂度居中最低最高编码质量居中
最低
最高
应用场景
适用于自然/CG/屏幕内容
面向广播电视制播、帧缓存压缩、
显示链路中传输的数据压缩等
适用于自然内容
面向广播电视制播、摄像机压缩等
适用于自然/CG/屏幕内容面向台内节目传输、高质量数字电视传输的压缩等
.
42
的显示是交替显示,判断结果分为判断正确、判断错误、不做判断,不做判断认为左右两侧效果一致无法判断。
5.2测试环境
测试中采用了6个测试图像/序列,包括摄像机拍摄内容、CG 内容、屏幕
内容等,实际测试环境设置如表4所示。
5.3测试结果
对于每一幅图像,根据每个评测人员的测试结果,计算指标如下。
N 是评测人员数量,OK 是闪烁被正确判断的人员数量,ND 是无法辨别出闪烁的人员数量。该指标取值范围[0,2],0代表所有人都判断正确,1代表没有人能辨别出闪烁,即压缩后的图像质量视觉无损,2则代表所有人都判断错误,此情况会通过异常剔除来避免。
测试中三家测试结构共360个测
幕分为左右两部分,左侧显示原始图像,右侧编解码后的图像和原始图像交替显示;对于图像序列测试,将图像序列划分为多个子序列,如以半秒为单位进行划分,左侧显示原始图像
序列,右侧编解码后的子序列和原始子序列交替显示,保证左右时域上的一致性。如果编解码后的内容与原始内容之间差异较大,观看时会出现闪烁的感觉。评测人员需要判断哪一侧
表4 测试环境
序号项目
建议
1
监视器
Eizo CG318-4K 10bit 监视器
2观看距离
最佳观看距离为60ppd 位置,对应监视器是58.6cm,实际测试中EPFL 和VUB-imec 观看距离为50cm,CTU 观看距离为59cm 3同一时间评测人员数量1个4背景亮度15~20尼特
5
监视器峰值亮度
120尼特(建议100~140尼特)
6视频服务器最低要求
英特尔® i7,配备PCIe 或M2固态硬盘和10个bpp 的GPU。分辨率设置为3840×2160,刷新率24Hz,10个bpp 输出。7视频播放器
开源跨平台支持的MPV 播放器
表5 主观测试结果[30]
Main 类Low memory 类Low logic 类High 类编码码率(bpp)
Score 编码码率(bpp)
Score 编码码率(bpp)
Score 编码码率(bpp)
Score Lake2(24bpp)2340.56%30.00%57.22%345 2.22%37.78%67.50%2340.56%17.22%50.56%23410.83%33.89%84.17%Sintel2(30bpp)45634.44%63.61%86.39%45747.22%64.44%93.61%45735.00%73.06%93.33%35631.67%76.94%78.33%Fly (24bpp)10111317.78%55.28%90.83%12131518.06%49.17%90.56%10111336.94%52.78%91.39%9101223.33%53.61%79.44%ChineseEditing
(24bpp)345 3.61%50.00%84.72%68927.78%64.72%92.78%45614.44%72.22%98.89%234 1.11%4
6.11%68.89%GoogleMaps (24bpp)33.54 4.44%34.72%70.28%457 2.78%7.78%90.56%3458.33%70.56%96.67%234 4.44%46.39%86.39%Parkjoy (20bpp)
345
19.17%73.61%91.11%
345.5
0.28%15.83%53.61%
345
26.11%57.78%85.83%
235
3.89%38.06%92.22%