高吞吐量JPEG 2000在电影中的应用

2021-05-24 07:43
现代电影技术 2021年5期
关键词:转码编码器吞吐量

(中国电影科学技术研究所,北京 100086)

JPEG 2000标准作为新一代的图像压缩标准自2000年正式出台以来,凭借其优异的压缩比、新加入的对于感兴趣区域 (ROI)的支持、以及其支持渐进传输等优点,使得JPEG 2000标准在图像压缩领域取得了一定突破,在电影、互联网、数字相机、医疗影像、数字图书馆等领域得到广泛应用。时光荏苒、岁月如梭,JPEG 2000标准发展至今已经经历了20个春秋。随着用户需求的与时俱进和视听产品的规格标准不断提升,JPEG 2000标准对编解码硬件要求较高,无法在广泛的应用领域得到推广,发展受到限制。2020 年前后,JPEG 委员会在JPEG 2000国际标准系列 (ISO/IEC JTC 1/SC 29/WG 1)新增加了一个标准——“高吞吐量JPEG 2000”。

1 什么是HTJ2K

高吞吐量JPEG 2000 英文全称是 High Throughput JPEG 2000,简称HTJ2K。该标准是JPEG 委员会在JPEG 2000 国际标准系列 (ISO/IEC JTC 1/SC 29/WG 1)新增加的一个标准。

HTJ2K 标准能够为JPEG 2000 带来巨大的数据量吞吐。同JPEG 2000标准相比,在采用中等压缩比率时,HTJ2K 标准能够提高大约10倍的数据吞吐量;而在采用无损编码时,HTJ2K 标准可以提供超过原来30倍的数据吞吐量。HTJ2K 标准在略微降低编解码效率的情况下,大大降低了计算的复杂程度,因此其能够采用低成本的硬件实现。例如:4096×2160 分辨率的4K 4∶4∶4 12 比特/通道(bit/channel)即36 比特/像素 (bits/pixel)的视频采用3.4GHz 4核Skylake桌面处理器,以2比特/像素 (bits/pixel)进行编码时,编码速度可超过90fps,且同一硬件对该片还可以实现超过140fps的解码。如果相同规格的视频内容采用目前性能处于中等水平GTX1080芯片的GPU 进行解码,可以达到500fps。

2 HTJ2K 与JPEG 2000的关系

HTJ2K 通过引入一种新的HT 块编码器来实现数据的高吞吐量,对原始JPEG 2000 第1 部分(以下简称为J2K-1)块编码器进行替换,该模块能够转码到J2K-1格式,也可以从J2K-1格式转码还原,实现了真正可逆的转码。

除质量可扩展性之外,HTJ2K 保留了JPEG 2000第1部分的所有特性。它与JPEG 2000第2部分定义的扩展、JPEG 2000第9部分定义的交互式通信协议以及JPEG 2000 系列的其他部分兼容。HTJ2K 完全支持分辨率可扩展性,有效的空间随机访问,多光谱和高光谱内容(multi-spectral and hyper-spectral content),以及高吞吐量非迭代精确速率控制。与J2K-1编码器不同,HT 编码器并未完全嵌入,并且HTJ2K 码流可以保留质量层边界,从而在HT 和J2K-1之间实现真正的可逆转码。

HTJ2K 解决了专业视频采集、编辑、流媒体和分发市场的需求,包括高精度和半浮点 (half-float)内容的高吞吐量无损编码。HTJ2K 同时能够广泛应用于各种程序,从点对点视频流到图像捕获、预览和浏览等功能。同时,超高的电能利用率使其充分胜任移动设备和卫星成像应用。

最后,HTJ2K 标准中定义了一种称为JPH 的包装文件格式,用最新的颜色空间更新了JPEG 2000格式,几乎支持无限精度的HDR 内容。其扩展了JP2文件格式,支持现代可参数化的颜色空间、没有任何颜色空间的图像以及适合原始传感器压缩的自定义颜色映射。

JPEG 2000第16部分规定了ISO/IEC 23008-12中JPEG 2000 码流的封装,通常称为HEIF。JPEG 委员会正在对其进行修订,以支持封装HTJ2K 标准的码流。目前Kakadu、OpenJPH、ICT-Link都已经支持HTJ2K 标准。与J2K-1 标准一样,HTJ2K 标准也是免费的。

3 HTJ2K 整体架构

图1显示了HTJ2K 压缩和解压所涉及的元素。HTJ2K 在很大程度上保留了JPEG 2000 的现有体系结构和代码流语法。图像首先完成JPEG 2000第1部分或第2部分定义的多分量变换、非线性点变换,变换后的图像分量由可逆或不可逆的离散小波变换 (DWT)处理,生成详细子带和一个基本(LL)子带的层次结构。

图1 HTJ2K 整体架构

所有子带被划分为不超过4096个样本的块,典型尺寸为64×64或32×32,也可以是非常宽和短的块,如1024×4,该种块对于低延迟应用程序也很重要。每个块被单独量化 (如果是不可逆的)并编码,产生一个包含零或更多编码参数的比特流。

在编码器中,可选的压缩后失真率优化(PCRD-opt)阶段用于丢弃部分产生的编码参数。最后,把来自每个代码块的比特流组合为JPEG 2000数据包,以形成最终的代码流。

HT 块编码器具有并发处理能力。所有JPEG 2000码流都由码块组成,每个码块最多有4096 个样本,所有样本都可并行处理。使HT 块编码器如此之快的原因是每个HT 块位流由3到5个字节流组成,这些流是松散耦合的,可并发处理。

4 HTJ2K 的应用

图2 HTJ2K 系统图

HTJ2K 标准引入了全新的HT 块编码器,该编码器替换了J2K-1 中定义的J2K-1 块编码算法,从而相对于JPEG 2000数据吞吐量有着巨大的提升。

4.1 电影和录像资产的分配、存档和管理

目前,JPEG 2000在用于数字电影发行放映以外,被广泛用作数字电影和视频资产的中间发行格式,这主要借助于电影电视工程师协会 (SMPTE)定义的互操作母版格式 (IMF)规范。在这种应用场景也可以采用HTJ2K 标准,相对于JPEG 2000标准会更加提高效率。

针对目前已经有大量JPEG 2000的视频内容的存档管理,HTJ2K 标准也提出了相应的解决办法,由于HTJ2K 标准仅仅是替换了JPEG 2000编解码器,所以可以在不影响原来工作流程的情形下,在处理流程中直接加入HTJ2K 转码器来完成转码工作,不仅如此HTJ2K 标准还有将HTJ2K 改为J2K-1的可逆转码器,能够帮助将已经编码的文件还原回J2K-1状态。

按照图2的HTJ2K 系统图中的路径C-D-F-I-K,现有的存档JPEG 2000媒体可以被转换、存储、分发和播映,大大降低了计算复杂度。

首先,原来被存储在J2K 媒体库中的J2K 媒体将使用HTJ2K 可逆转码器将J2K-1格式文件转码成为HTJ2K 文件格式,该转码器为可逆转码器,确保用户可以根据需要能够还原成J2K-1 格式文件;接下来被转码成HTJ2K 格式的文件将被存储在HTJ2K 储存库中方便进行存储和分发;当媒体文件需要呈现时,HTJ2K 文件将通过HTJ2K 解码器进行解码,然后显示给用户观看。

当用户需要将HTJ2K 格式文件恢复成JPEG 2000格式时,可以通过路径F-H-G (见图2)完成原始JPEG 2000 无损恢复。HTJ2K 格式文件通过HTJ2K 可逆转码器,将HTJ2K 格式文件还原成JPEG 2000文件J2K-1格式文件,并将J2K-1格式文件存储到J2K 储存库中。

SMPTE在最近修订的SMPTE ST 422标准中增加了对MXF 文件中HTJ2K 的支持,这使得HTJ2K 更容易使用在数字电影、IMF 和其他使用以MXF文件为基础的应用中。

4.2 节约能耗的图像捕获和预览

HTJ2K 标准及其相关的JPH 文件格式还可以应用在数码相机、手机和更先进的多传感器成像设备上,可以帮助这些设备保存捕获的图像更多的细节特性。使用软件和硬件将图像直接编码成HTJ2K所需的能耗非常低,这个特性对于使用电池供电的设备大有裨益。HTJ2K 支持非常高的样本精度,允许用HLG 和PQ 等非线性传递函数编码高动态范围内容。更重要的是,HTJ2K 具有分辨率可伸缩性和区域可访问的特性,它允许JPH 文件以极低的能耗预览图片或者是查看图片某一个部分。这个功能所需要的能耗远远低于使用JPEG 文件格式预览所需的能量。

整个工作流程如图2的路径B-E-F-I-K。视频源或者图片源首先进入HTJ2K 编码器,编码成为HTJ2K 格式文件,然后存储在HTJ2K 储存库中,需要使用的时候从HTJ2K 储存库中提取出来由HTJ2K 解码器解码,然后展示给用户。

此外,HTJ2K 与JPIP 标准无缝工作,可以用于JPEG 2000图像的交互式远程浏览。这提供了一种高效的机制来支持从特定网络中的设备远程预览捕获的内容,行使路径B-E-F-L (见图2)。首先视频源或者图片源通过HTJ2K 编码器编码后生成HTJ2K 格式文件,然后HTJ2K 格式文件存储到HTJ2K 储存库中,JPIP服务器可直接从HTJ2K储存库中提取HTJ2K 格式文件。如果在过程中需使用J2K-1标准,可将HTJ2K 可逆转码器完全嵌入流程中,在HTJ2K 系统图中行使路径B-E-F-H-J(见图2),即在需使用的时候将从HTJ2K储存库中提取出来由HTJ2K 格式文件进行HTJ2K到J2K-1的可逆转码,转成J2K-1格式文件后再交由JPIP服务器处理,以实现对远程内容的高效浏览。

HTJ2K 也可以应用在远程直播、广播、视图查找等方面,工作流程在图2的HTJ2K 系统图中执行路径B-E-I-K,利用HTJ2K 极高的编码和解码吞吐量,即使在较低的传输速率下也具有较高的编码效率,且视频流从一端到另外一端具有较低延迟。这些特性允许高质量4K 内容在传统IP或本地无线链路上传输,节省了原有传输路线的扩容问题,降低了投资规模。

4.3 高分辨率视频采集

以往使用J2K-1块编码算法,大多数移动设备没有足够的CPU 功率来直接压缩其图像传感器能够产生的高分辨率视频流。HTJ2K 使用图2中的路径B-E-F,通过实时产生压缩流来解决这个问题。如果后期有需要,之前采集的HTJ2K 格式文件可以被转码为J2K-1格式,执行图2中路径FH-G 或F-H-J来完成。

4.4 用于交互渲染的缓存管理

在查看大型图像时,通常会按照需要通过改变分辨率来缩放图片进行浏览,也会通过放大某一块感兴趣的区域进行仔细查看,因此连续呈现的视图包含许多共同的代码块。每次以某种分辨率呈现感兴趣的区域时,相关的代码块通常都是按需解码的,可从本地文件或客户端缓存中动态访问。

HTJ2K 标准也可以应用在大型图像缓存管理方面。目前有两种方式,一种是如果源内容已经使用HTJ2K 编码器,那么在交互渲染过程中重复解码常见的码块将比使用J2K-1 编码算法速度快得多,将大大降低这些应用使用的电量。另外一种,如果原始媒体使用J2K-1块编码器,则被重复访问的代码块可以被转换为等效的HT 块表示并存储在智能内容缓存中,从该缓存中重新呈现将会变得更加高效。HTJ2K 和J2K-1 都使用了类似的缓存内存,并且保留了图片或者视频的所有信息。这种类型的应用在图2的HTJ2K 系统图中执行路径部分或全部路径为A-D-F-I-K。首先,JPIP 客户端将生成的J2K-1格式文件经由HTJ2K 可逆转码器转换成为HTJ2K 文件格式,并储存在HTJ2K 储存库中,在使用的过程中HTJ2K 文件经HTJ2K 解码器解码后,显示给用户。

4.5 Web服务器中优化的图像传递

如今,通过各种各样设备可实现Internet浏览,这些设备有多种屏幕尺寸和分辨率。为适应不同设备屏幕,为用户提供更优体验,需要调整适配不同分辨率图像,甚至要做一定的裁剪来更好地匹配不同设备屏幕,以便减少所需的带宽和渲染时间。这是“响应图像 (Responsive Images)”倡议的动机。

响应图像倡议已经存在了好多年,目前得到了所有广泛使用浏览器厂商的支持:例如Firefox 和Chrome从第38版开始支持该倡议;Edge从第18版也开始支持。现有方法是在服务器端存储不同分辨率的图片,当设备用web浏览器访问服务器时,web浏览器加载显示设备最匹配的图像。这要求web服务器存储非常大量的不同的但相关的图片映像。这种方式增加了服务器的工作负载,而且需要增加服务器的硬盘、内存等硬件的投入。

HTJ2K 独有的机制可以更好地实现响应图像倡议的目标。HTJ2K 利用分辨率可伸缩性和随机访问能力,单个JPH 文件就可以有效地提供图像所有所需的不同分辨率和图像裁剪组合,从而减少web服务器的工作量和对硬件资源的消耗。

5 结论

2005年7月,数字影院倡导组织 (Digital Cinema Initiatives,简称DCI)发布了 《数字影院技术规范》(V1.0)将JPEG 2000作为数字电影的编码格式。在过去的这些日子里,JPEG 2000标准凭借其高压缩率、高图像质量一直在电影行业中发挥着巨大作用。随着高帧率 (HFR)、高动态范围(HDR)、大色域、8K、VR 等高新技术格式电影和媒体产品的发展驱动,JPEG 2000标准的一个重要缺点——“计算复杂”越来越突出,这个缺点进一步限制了其在电影中的应用。HTJ2K 标准的出现很大程度上解决了这一问题。

HTJ2K 在整个JPEG 2000 系列标准加入的内容相对较少,但是却给JPEG 2000系列标准带来了全面的改进。与原始JPEG 算法相比,HTJ2K 提供了更高的编码效率、可伸缩性的分辨率、区域资源的可访问性和更强大的并行计算能力,同时与现有的JPEG 2000 算法相比,实现了更高的数据吞吐量。

HTJ2K 保留了JPEG 2000几乎所有丰富的特征集外,还额外增加了质量可伸缩性,在大大降低计算复杂度的同时大幅提高了数据吞吐量 (代价是编码效率降低5%~10%)。

HTJ2K 和原来的J2K-1 格式是完全可互换的,允许在捕获、分发、存档、缓存或呈现系统中的任意点合并和可逆转码,以在不牺牲数据完整性的情况下获得这两种算法的最佳特性。在转码过程中,HTJ2K 甚至可以保留非HTJ2K 码流的所有质量分层、配置文件等信息。❖

注释

①Skylake是英特尔第六代微处理器架构,采用14 纳米制程,是Intel Haswell微架构及其制程改进版Intel Broadwell微架构的继任者。

②JPEG 2000第9部分,也称为JPIP标准,该标准定义了对图像 (包括视频和动画)如何进行高效和响应的远程交互浏览。

猜你喜欢
转码编码器吞吐量
基于ResNet18特征编码器的水稻病虫害图像描述生成
视频转码软件的需求和框架分析
2017年3月长三角地区主要港口吞吐量
基于小波域的DVC到HEVC快速转码研究
2016年10月长三角地区主要港口吞吐量
基于TMS320F28335的绝对式光电编码器驱动设计
2016年11月长三角地区主要港口吞吐量
如何进行优酷超清视频的转换操作
2014年1月长三角地区主要港口吞吐量
Stream PK Cuda