メディアの取り込み
ブラウザが表示できないファイル——複数ページの 16 ビット TIFF、HEIC、カメラ RAW、ProRes、MKV——を、キャッシュつきのトランスコードプロキシ経由でアノテーションします。
ブラウザが表示できないファイルは、エラーも出さずに空白のキャンバスを出すため、アノテーターはツールが壊れていると判断します。 Potato は最初の要求時にそれらをトランスコードして結果をキャッシュし、本当にできないときは代わりに実行すべきコマンドとともにそう伝えます。
トランスコードしたファイルを要求する
ファイルを /media/ ではなく /media/proxy/ 経由で参照します。
{"id": "scan_001", "image_url": "/media/proxy/scan_001.tif"}ブラウザがもともと表示できるファイル(.jpg、.png、.webp、.mp4、.webm)は再エンコードされずそのまま通るので、混在したコーパスでも特別な扱いは要りません。すべてをプロキシに向けてください。
結果は <output_annotation_dir>/.media_cache/ にキャッシュされます。キャッシュキーには元ファイルのサイズと更新時刻が含まれるので、元ファイルを編集すると古いキャッシュに当たらず新しいエントリができます。
対応するもの
| 元 | 変換後 | 備考 |
|---|---|---|
| TIFF | WebP | 複数ページと 16 ビット、パーセンタイル窓つき |
| HEIC | WebP | iPhone の既定の写真形式 |
| カメラ RAW | WebP | rawpy 経由 |
| ProRes、MKV、MOV、HEVC | MP4 | ffmpeg によるプロキシトランスコード、フレーム抽出のフォールバックつき |
ffmpeg と Pillow-SIMD は任意のままです。入っていない場合は、空白のパネルではなく足りないツール名を挙げたメッセージが出ます。
実質的な部分は 16 ビットの窓の取り方
科学用途の TIFF はたいてい 16 ビットで、その内容はたいてい使える値域の狭い帯に収まっています。それを素朴に 8 ビットへ落とすのは小さな損失ではありません。内容が 1200 から 1800 の間に収まるスキャンは 255 階調中 4 階調の分離しか残りません。パーセンタイル窓なら 254 になります。
同じ窓の処理が深度マップも動かしており、そちらでも間違いは明白にならず目に見えないままです。