這項基準測試究竟證明了什麼?
證明一個具名的檔案、來自具名的掃描器、以其真實大小,能在正式發行版中開啟並在螢幕上顯示像素。不多也不少。格式支援清單是在宣稱一項能力;這份測試則是在量測它。如果某種廠商結構讓解碼器無法處理,該檔案會連同使用者會看到的錯誤訊息出現在失敗表中,而不是悄悄少掉一列。
這是廠商自己做的測試:軟體是我們寫的,測試也是我們跑的。它仍值得一讀的原因是您可以自行驗證:測試資料集是公開的,執行程式就在我們的桌面版儲存庫中,而每個檔案的原始結果就在本頁上。
格式支援表通常只是某人打出來的副檔名清單。這份則是實測結果。橫跨 14 個格式家族的每個檔案(共 44.1 GB 的廠商掃描檔與公開參考影像),都由正式發行版 SlideScope 的載入器開啟並算繪,每個檔案在一個可犧牲的子處理程序中執行,並記錄結果。767 個成功開啟。9 個無法讀取,下方逐一列出。16 個其實完全不含影像。沒有任何檔案導致檢視器當機。
證明一個具名的檔案、來自具名的掃描器、以其真實大小,能在正式發行版中開啟並在螢幕上顯示像素。不多也不少。格式支援清單是在宣稱一項能力;這份測試則是在量測它。如果某種廠商結構讓解碼器無法處理,該檔案會連同使用者會看到的錯誤訊息出現在失敗表中,而不是悄悄少掉一列。
這是廠商自己做的測試:軟體是我們寫的,測試也是我們跑的。它仍值得一讀的原因是您可以自行驗證:測試資料集是公開的,執行程式就在我們的桌面版儲存庫中,而每個檔案的原始結果就在本頁上。
每個檔案都交給一個可犧牲的子處理程序,該子處理程序建立與應用程式相同的載入器、讀取影像尺寸、解碼一個平面,並透過檢視器所用的同一條 Qt 算繪路徑進行轉換。若格式錯誤的檔案使原生編解碼器中止,只會終止該子處理程序;監控程式會記錄當時正在處理哪個檔案,然後繼續執行。正因為這種設計,針對多 GB 廠商掃描檔的基準測試才得以跑完,而這張表也才能誠實地將「當機」這一類別記為零。
slidescope-desktop/scripts/publish_format_benchmark.py:位於 SlideScope 桌面版儲存庫中的單一指令,會執行全部三個階段,並寫出本頁所呈現的完全相同的 JSON:python scripts/publish_format_benchmark.py --dataset <corpus> --output format-benchmark.jsonczitools 與 nd2 函式庫的測試資料,以及我們已根據發布者核對 sha256 的廠商範例檔。這些是掃描器格式:來自 Aperio、Hamamatsu、3DHISTECH、Leica、Ventana、Akoya 或 Agilent 儀器的檔案,經常達到數 GB。
| 格式 | 檔案數 | 已開啟 | 結果 | 最大影像 | 最大檔案 | 達到的維度 | 像素類型 |
|---|---|---|---|---|---|---|---|
.avs Agilent ARGOS AVS |
2 | 2 | 全部開啟 | 130,546 × 57,440 (7499 MP) | 439 MB | 單一平面 | uint8 |
.bif Ventana BIF |
2 | 1 | 1 個無法讀取 | 114,943 × 76,349 (8776 MP) | 2.5 GB | 單一平面 | uint8 |
.mrxs 3DHISTECH MIRAX |
6 | 6 | 全部開啟 | 109,240 × 220,696 (24109 MP) | 72 KB | 單一平面 | uint8 |
.ndpi Hamamatsu NDPI |
5 | 5 | 全部開啟 | 211,200 × 95,744 (20221 MP) | 4.2 GB | 單一平面 | uint8 |
.qptiff Akoya QPTIFF |
2 | 2 | 全部開啟 | 30,720 × 26,640 (818 MP) | 1.9 GB | 5C | uint8 |
.scn Leica SCN |
3 | 1 | 2 個無法讀取 | 53,130 × 153,470 (8154 MP) | 2.8 GB | 單一平面 | uint8 |
.svs Aperio SVS |
7 | 7 | 全部開啟 | 96,999 × 45,667 (4430 MP) | 671 MB | 單一平面 | uint8 |
.vms Hamamatsu VMS |
3 | 3 | 全部開啟 | 143,360 × 101,888 (14607 MP) | 1 KB | 單一平面 | uint8 |
多維擷取格式:這裡值得關注的不是檔案大小,而是有多少通道、Z 平面與時間點能完整呈現在螢幕上。
| 格式 | 檔案數 | 已開啟 | 結果 | 最大影像 | 最大檔案 | 達到的維度 | 像素類型 |
|---|---|---|---|---|---|---|---|
.czi Zeiss CZI |
48 | 48 | 全部開啟 | 6,000 × 6,000 (36 MP) | 4.2 GB | 8C · 56Z · 10T | uint16、uint8 |
.dcm DICOM |
378 | 362 | 16 個不含影像 | 77,687 × 73,366 (5700 MP) | 1.2 GB | 137Z | int16、uint16、uint8 |
.dicom DICOM |
1 | 1 | 全部開啟 | 512 × 512 (0 MP) | 514 KB | 單一平面 | uint16 |
.ims Imaris IMS |
17 | 11 | 6 個無法讀取 | 4,096 × 4,096 (17 MP) | 946 MB | 3C · 98Z · 10T | uint16、uint8 |
.lif Leica LIF |
3 | 3 | 全部開啟 | 1,024 × 1,024 (1 MP) | 2.8 GB | 5C · 5T | uint16、uint8 |
.nd2 Nikon ND2 |
82 | 82 | 全部開啟 | 2,400 × 2,400 (6 MP) | 376 MB | 5C · 35Z · 288T | uint16、uint8 |
.tif TIFF / OME-TIFF |
200 | 200 | 全部開啟 | 17,927 × 20,273 (363 MP) | 1.0 GB | 8C · 10Z · 43T | float32、int8、uint8 |
.tiff TIFF / OME-TIFF |
33 | 33 | 全部開啟 | 45,056 × 35,840 (1615 MP) | 2.5 GB | 3C · 38Z · 7T | float32、int8、uint8 |
792 個檔案中有 25 個未能開啟,但它們不是同一種情況,而是兩種。9 個是真正的限制:確實是影像,但我們目前無法讀取。另外 16 個是本來就不含影像的檔案,拒絕開啟才是正確的回應。把兩者混為一談會美化我們的成績:本次執行誠實的失敗數是 9,而不是 25。
這些檔案每一個都完好無損(檢查碼與發布者一致),所以這些是解碼器與廠商結構的限制,而非損壞的範例檔。它們會永久保留在測試資料集中作為迴歸測試,這樣一旦其中某個檔案開始可以開啟,我們當天就會知道。
| 檔案 | 大小 | 錯誤 | SlideScope 向使用者顯示的訊息 |
|---|---|---|---|
.bif Ventana-1.bif |
217 MB | ImageLoadError | 此切片使用 OpenSlide 後端無法開啟的廠商結構。檔案本身並未損壞。 |
.ims Convallaria_3C_10T_confocal_IMS3.ims |
68 MB | ImageLoadError | 此 .ims 檔案不是 SlideScope 支援的 HDF5 架構 Imaris 格式。較舊、HDF5 之前的 Imaris 匯出檔(有時稱為 "Imaris Classic")使用不同的容器,目前不支援。 |
.ims Convallaria_3C_1T_2x2grid_confocal_IMS3.ims |
23 MB | ImageLoadError | 此 .ims 檔案不是 SlideScope 支援的 HDF5 架構 Imaris 格式。較舊、HDF5 之前的 Imaris 匯出檔(有時稱為 "Imaris Classic")使用不同的容器,目前不支援。 |
.ims Convallaria_3C_1T_confocal_IMS3.ims |
8 MB | ImageLoadError | 此 .ims 檔案不是 SlideScope 支援的 HDF5 架構 Imaris 格式。較舊、HDF5 之前的 Imaris 匯出檔(有時稱為 "Imaris Classic")使用不同的容器,目前不支援。 |
.ims Convallaria_3C_3T_2x2grid_confocal_IMS3.ims |
66 MB | ImageLoadError | 此 .ims 檔案不是 SlideScope 支援的 HDF5 架構 Imaris 格式。較舊、HDF5 之前的 Imaris 匯出檔(有時稱為 "Imaris Classic")使用不同的容器,目前不支援。 |
.ims Convallaria_3C_3T_35Z_confocal_deconvolved_IMS3.ims |
661 MB | ImageLoadError | 此 .ims 檔案不是 SlideScope 支援的 HDF5 架構 Imaris 格式。較舊、HDF5 之前的 Imaris 匯出檔(有時稱為 "Imaris Classic")使用不同的容器,目前不支援。 |
.ims TransFactors_2C_SRRF_IMS3.ims |
26 MB | ImageLoadError | 此 .ims 檔案不是 SlideScope 支援的 HDF5 架構 Imaris 格式。較舊、HDF5 之前的 Imaris 匯出檔(有時稱為 "Imaris Classic")使用不同的容器,目前不支援。 |
.scn Leica-Fluorescence-1.scn |
21 MB | ImageLoadError | 此切片使用 OpenSlide 後端無法開啟的廠商結構。檔案本身並未損壞。 |
.scn Leica-3.scn |
2.8 GB | ImageLoadError | 此切片使用 OpenSlide 後端無法開啟的廠商結構。檔案本身並未損壞。 |
問題的規律在於廠商結構,而非成像方式。螢光 NDPI 與螢光 MIRAX 都能正常開啟;後端拒絕的是特定的結構變體:無法辨識主影像的 SCN、帶有非預期 direction 屬性的 BIF、HDF5 之前的 "Imaris Classic" 容器。每則訊息都會指出原因,而不是說檔案已損壞,因為在這每一個案例中,檔案本身都沒問題,是我們做不到。
DICOM 既是影像格式,也是一種文件格式。DICOMDIR 是光碟的索引;presentation state 記錄某人曾經如何為一項檢查調整窗位;其他物件則存放報告或量測值。這些都不含像素。檢視器即使開啟它們也沒有內容可顯示,因此 SlideScope 會拒絕開啟並附上說明。這是正確的行為,我們將它們另外計算,以免灌水任一欄的數字。
逐一完整列出,以免有任何檔案藏在類別背後:DICOMDIR、PS_0026、PS_0108、PS_0128、PS_0154、PS_0181、XX_0027、XX_0109、XX_0155、XX_0182、XX_0183。
這是最重要的失敗模式,也是格式支援表從不承認的一種,所以以下是我們的案例。
一個多重標記的 Akoya .qptiff 掃描檔(Vectra 七色參考檔案)開啟時完全沒有錯誤。此檔案包含五個全解析度的單通道螢光頁面(DAPI、FITC、CY3、Texas Red、CY5),尺寸為 34,560 × 24,960,共 33 頁,已透過 tifffile 獨立確認。SlideScope 當時將所有 .qptiff 都交給 OpenSlide 後端處理,而那是一個明視野讀取器,因此它只回報一個通道,並傳回一張 RGB 切片。螢光通道無法存取,通道控制項也無從選擇。
沒有任何警告。同一資料集中的明視野 H&E QPTIFF 掃描檔都能完美開啟,這正是問題未被察覺的原因。
已在 SlideScope 1.8.48(2026 年 9 月 18 日)修正:後端現在依檔案選擇,而不是依副檔名。多重標記掃描檔會交給能傳回全部五個通道的讀取器;明視野 QPTIFF 則繼續使用 OpenSlide 及其全解析度圖塊。其中的取捨我們明白說出而不隱藏:多重標記 QPTIFF 會以較低解析度顯示,檔案詳細資訊面板也會註明這一點。本頁的執行結果已反映此修正:QPTIFF 那一列列出了兩種載入器與五個通道。
本次執行證明的是能否開啟。像素是否正確是另一個問題,我們另行測試:第二輪掃描會透過底層函式庫解碼相同的平面,並與載入器傳回的結果比對。QPTIFF 的案例就是這樣被抓出來的。
SlideScope 沒有通用的備援讀取器,而檢視器如何處理它本來就不支援的檔案,與它如何處理支援的檔案同樣重要。我們從參考資料集中,針對每一種不支援的副檔名取出最小的真實檔案(共 93 個),逐一交給正式發行版的載入器工廠處理。
93 個中有 93 個都以清楚的訊息被拒絕。沒有任何一個導致當機。也沒有任何一個被半開成看似影像、實則不是的東西。清單中包括使用者很可能會嘗試開啟的格式:.jpg、.lof、.nii、.oib、.oir、.png、.psd、.raw、.vsi。在本次執行時,這也包括 .png 與 .jpg,它們會以訊息拒絕,而不是勉強猜測內容。
本次執行之後:SlideScope 1.10.0(2026 年 10 月 16 日)新增支援 18 種格式,其中包括多種在此被拒絕的格式:Olympus .vsi、.oib 與 .oir、Leica .lof 與 .xlef、Hamamatsu .ndpis,以及 PNG、JPEG 等常見影像。本頁的數字是 9 月 18 日執行時的實測結果;1.10.0 新增的格式並未包含在內。SlideScope 1.20.0 又新增支援五種本次未測試的格式:Philips .isyntax、KFBio .kfb、ICS/IDS、Gatan .dm3 與 .dm4,以及 Olympus .sis。最新清單請參閱檔案相容性參考。
.vmu 或 .svslide 範例檔(OpenSlide 兩者都未發布),因此這兩個載入器只以合成的邊界案例測試。我們不宣稱它們已通過測試支援。十八種副檔名:.svs、.ndpi、.mrxs、.scn、.bif、.vms、.vmu、.svslide、.qptiff、.avs、.czi、.nd2、.lif、.ims、.dcm、.dicom、.tif 與 .tiff。SlideScope 沒有通用的備援讀取器:清單以外的檔案都會以簡單明瞭的訊息拒絕,而不是勉強開啟出錯誤的結果。
不是。這是 SlideScope 針對 SlideScope 發布的測試,因此請將它視為廠商測試,而非第三方稽核。我們無法提供獨立性,但能提供可驗證性:測試資料集是公開的,執行程式在我們公開的腳本目錄中,原始結果檔案的連結就在本頁上,而且失敗案例與成功案例列得一樣詳細。
幾乎都是因為廠商寫入的結構是底層開源後端無法讀取的,例如 OpenSlide 在螢光 SCN 上回報 "Can't find main image"。這些是上游的限制,我們選擇揭露而不是隱藏。失敗的檔案都完好無損:檢查碼與發布者提供的一致。
光是開啟並不足以證明,所以我們兩者都測試。本次執行證明的是能否開啟;像素是否正確則另由 sweep_format_reference.py 證明,它會透過底層函式庫解碼相同的平面,並與 SlideScope 算繪的結果比對。有一個已知案例(一個多重標記的 Akoya QPTIFF)開啟時沒有錯誤,卻顯示了錯誤的內容,直到 SlideScope 1.8.48 才修正。本頁對此有詳細記錄。
可以。Open Microscopy Environment 參考資料集可公開下載,廠商範例檔來自 OpenSlide 以及各格式函式庫本身的測試資料,執行程式則隨附於 SlideScope 桌面版儲存庫中。本頁每張表格背後的原始 JSON 連結都在上方。
否。SlideScope 用於研究、教學與審閱。它不是診斷器材,不得用於做出初步診斷。
我們的資料集不是您的切片櫃。安裝 SlideScope,開啟真正讓您頭痛的檔案;如果其中有檔案失敗,請寄給我們:本頁上的失敗案例,正是因為有人這樣做才出現在這裡。