渐进式加载
我们为堆栈影像和体数据都新增了渐进式加载器。对堆栈影像, 渐进式加载器可以先加载一个较小或有损的影像;对体数据, 则既可以加载较小 / 有损的影像,也可以加载完全交错的版本, 以此加快加载过程。
进阶选项
渐进式加载的进阶配置选项。取回阶段侧包括 positions 指定精确影像位置、decimate 与 offset 实现交错、priority 与 requestType 控制优先级、nearbyFrames 复制邻近帧填空;取回选项侧包括 urlArguments、framesPath、imageQualityStatus,以及用 JPIP 或独立路径取回亚分辨率影像。
编码
部分分辨率影像分为有损、缩略图和字节范围三种类型。本文说明这三类的区别,并给出用 Static DICOMweb 的 mkdicomweb 命令创建 HTJ2K、JLS 及其缩略图版本的实际示例。
非 HTJ2K 数据的渐进式加载
对非 HTJ2K 渐进编码的数据,用 JLS 缩略图配合顺序取回配置来实现渐进式加载。本文给出 static-dicomweb 创建 JLS 缩略图的命令、顺序取回配置的两个阶段,以及 JLS 与 HTJ2K 在堆栈和交错体数据两种场景下的完整性能对比数据。
服务端要求
渐进式加载对服务端的能力要求。说明 HTJ2K RPCL(高吞吐 JPEG 2000 分辨率位置分量层)编码为何是前提、XHR 流式响应与字节范围请求各自的作用,以及各家 DICOMweb 实现在这方面差异很大这一现实。
取回配置
渐进式加载按「阶段」(stages)分步进行,每个阶段可配不同的取回选项(retrieve options),两者合起来构成取回配置。本文详解阶段与选项的引用关系、decodeLevel 解码分辨率、流式方式的自动解码频率,以及字节范围方式的 chunkSize 与 rangeIndex 规则和适用场景。
堆栈渐进式加载
以堆栈视口为例说明渐进式加载,并给出与常规加载的对比基准数据。对 3036×3036、11.1 MB 的测试影像,HTJ2K 流式单阶段首帧渲染 66ms、字节范围两阶段 45ms,而基线完整渲染需约 5 秒。文中给出两种取回配置的完整代码。
静态 DICOMweb
用 Static DICOMweb 实现渐进式加载的说明,涵盖标准与非标准两类配置选项。官方该页目前是一段残缺内容,本页给出可用的替代阅读入口。
用法
通过 imageRetrieveMetadataProvider 在 Cornerstone3D 中启用渐进式加载。本文说明如何为堆栈视口按 imageId 或按 stack 作用域注册取回配置,以及为体数据视口按 volumeId 或按 volume 作用域注册配置。
体数据渐进式加载
体数据渐进式加载通过交错取回影像来优化加载:先取每第 N 张影像,把缺失位置用复制插值填上,从而快速得到纵向低分辨率的完整体数据,再逐步换成全分辨率。本文给出性能对比数据,以及 HTJ2K 流式与字节范围两种方式的分阶段取回顺序与配置。