Ventana BIF file format support
Agelos Pappas
agelos at smartcode.gr
Tue Aug 27 06:01:47 EDT 2013
Hello,
I'd like to share with you our findings so far regarding the Ventana BIF
slide format. The files we've investigated so far are BigTIFF that
contain tiled levels along with a label and a thumbnail.
The description of the thumbnail directory is "Thumbnail".
The description of the label directory is "Label Image".
The description of actual image directories follow this pattern:
"level=0 mag=40 quality=90", "level=1 mag=20 quality=90", "level=2
mag=10 quality=90" and so on
The label directory contains XMP metadata (Tiff tag #700). This is a
sample of such metadata:
/<iScan Magnification="40" ScanRes="0.232500" UnitNumber="BI10N0306"
UserName="admin" BuildVersion="3.3.1.1" BuildDate="December, 13 2011"
SlideAnnotation="" ShowLabel="1" LabelBoundary="0" Z-layers="1"
Z-spacing="1" FocusMode="0" FocusQuality="1" ScanMode="1">//
// <AOI0 Left="450" Top="1381" Right="633" Bottom="1465"/>//
// <AOI1 Left="279" Top="1323" Right="382" Bottom="1415"/>//
// <AOI2 Left="234" Top="421" Right="919" Bottom="1206"/>//
//</iScan>//
/
Level 0 also contains XMP metadata that look like this:
/<?xml version="1.0"?>//
//<EncodeInfo Ver='2'>//
//<SlideInfo Rack="0" Slot="16"
BaseName="405210fa-5d23-4e3e-aafc-68129b714907"
JP2FileName="D:/CoreoImages/Customer/Customer_1_17_201210292112.bif"
StitchApproach="0" FallbackStitchApproach="0" UseFallbackForStitch="0">//
//<ServerDirectory Path=" " Copy="false"/>//
//<LabelImage Path="C:\Program Files\Ventana Medical Systems
Inc\iScan\ThumbnailImages\thumb_bs0_16.jpg"/>//
//<iScan Magnification='40' ScanRes='0.23250' UnitNumber='BI10N0306'
UserName='admin' BuildVersion='3.3.1.1' BuildDate='December, 13 2011'
SlideAnnotation='' ShowLabel='1' LabelBoundary='0' Z-layers='1'
Z-spacing='1' FocusMode='0' FocusQuality='1' ScanMode='1'>//
//<AOI0 Left="450" Top="1381" Right="633" Bottom="1465" AOIScanned="1"/>//
//<AOI1 Left="279" Top="1323" Right="382" Bottom="1415" AOIScanned="0"/>//
//<AOI2 Left="234" Top="421" Right="919" Bottom="1206" AOIScanned="1"/>//
//</iScan>//
//<AoiInfo XIMAGESIZE="1024" YIMAGESIZE="1360" NumRows="17" NumCols="11"
Pos-X="0" Pos-Y="49268"
DirPath="C:/DirTemp\Slot0_16\405210fa-5d23-4e3e-aafc-68129b714907\AOI0"/>//
//<AoiInfo XIMAGESIZE="1024" YIMAGESIZE="1360" NumRows="10" NumCols="12"
Pos-X="5473" Pos-Y="30559"
DirPath="C:/DirTemp\Slot0_16\405210fa-5d23-4e3e-aafc-68129b714907\AOI1"/>//
//<AoiInfo XIMAGESIZE="1024" YIMAGESIZE="1360" NumRows="61" NumCols="95"
Pos-X="28274" Pos-Y="25569"
DirPath="C:/DirTemp\Slot0_16\405210fa-5d23-4e3e-aafc-68129b714907\AOI2"/>//
//</SlideInfo>//
//<SlideStitchInfo Left="-1" Top="-1" Right="-1" Bottom="-1">//
//<ImageInfo AOIScanned="1" Width="1024" Height="1360" NumRows="17"
NumCols="11" Pos-X="0" Pos-Y="49268" MaxJTPFileSize="0">//
//<TileJointInfo FlagJoined='0' Confidence='0' Direction='RIGHT'
Tile1='1' Tile2='2' OverlapX='0' OverlapY='0'/>//
//<TileJointInfo FlagJoined='0' Confidence='0' Direction='RIGHT'
Tile1='2' Tile2='3' OverlapX='0' OverlapY='0'/>//
//<TileJointInfo FlagJoined='1' Confidence='98' Direction='RIGHT'
Tile1='3' Tile2='4' OverlapX='115' OverlapY='2'/>//
//<TileJointInfo FlagJoined='1' Confidence='94' Direction='RIGHT'
Tile1='4' Tile2='5' OverlapX='115' OverlapY='2'/>//
//<TileJointInfo FlagJoined='0' Confidence='0' Direction='RIGHT'
Tile1='5' Tile2='6' OverlapX='0' OverlapY='0'/>//
//<TileJointInfo FlagJoined='1' Confidence='98' Direction='RIGHT'
Tile1='6' Tile2='7' OverlapX='114' OverlapY='2'/>//
//<TileJointInfo FlagJoined='1' Confidence='98' Direction='RIGHT'
Tile1='7' Tile2='8' OverlapX='121' OverlapY='1'/>//
//<TileJointInfo FlagJoined='1' Confidence='96' Direction='RIGHT'
Tile1='8' Tile2='9' OverlapX='114' OverlapY='0'/>//
//<TileJointInfo FlagJoined='1' Confidence='94' Direction='RIGHT'
Tile1='9' Tile2='10' OverlapX='101' OverlapY='1'/>//
//<TileJointInfo FlagJoined='1' Confidence='90' Direction='RIGHT'
Tile1='10' Tile2='11' OverlapX='118' OverlapY='-1'/>//
//<TileJointInfo FlagJoined='1' Confidence='99' Direction='RIGHT'
Tile1='22' Tile2='21' OverlapX='107' OverlapY='1'/>//
//<TileJointInfo FlagJoined='1' Confidence='99' Direction='RIGHT'
Tile1='21' Tile2='20' OverlapX='108' OverlapY='2'/>//
//.........//
//</ImageInfo>//
//<ImageInfo AOIScanned="0" Width="1024" Height="1360" NumRows="10"
NumCols="12" Pos-X="5473" Pos-Y="30559" MaxJTPFileSize="0">//
//<TileJointInfo FlagJoined='0' Confidence='0' Direction='RIGHT'
Tile1='0' Tile2='0' OverlapX='0' OverlapY='0'/>//
//.........//
//</ImageInfo>//
//</SlideStitchInfo>//
//<AoiOrigin>//
//<AOI0 OriginX="0" OriginY="38080"/>//
//<AOI1 OriginX="6144" OriginY="68000"/>//
//<AOI2 OriginX="30720" OriginY="0"/>//
//</AoiOrigin>//
//</EncodeInfo>/
By trying to render tiles like in a regular TIFF files overlapping
occurs. It is not clear to us yet how tile indexing works (left to right
- top to bottom, spiral ?). It also seems that stitching information is
relative between tiles. This means that for different viewports where
different tiles are visible, tile positioning will vary. Tile stitching
information for the scaled down levels is not given.
Here are two sample xml files, one for a label image and one for a level 0:
http://www.smartcode.gr/xmp.zip
Regards
Pappas Agelos
On 24/8/2013 00:10, Benjamin Gilbert wrote:
> On 08/22/2013 03:59 AM, Yves Sucaet wrote:
>> We've been able to partly decipher the Ventana BIF format, however we
>> have a problem figuring out the final tile stitching data. We'd be quite
>> willing to contribute our code to OpenSlide, if somebody would be able
>> to continue working on it and figure out the stitching. We have some
>> technical understanding on what kind of information is contained in the
>> BIF-files as well, for those interested.
> Hi Yves,
>
> BIF is on my to-do list. Actually, BIF was part of the motivation for
> the cleanup work: the TIFF ops backend couldn't handle irregular tile
> positions.
>
> Your contributions are welcome, of course. If you'd be willing to write
> up what you've learned about the format, that would be very helpful.
>
> Thanks,
> --Benjamin Gilbert
> _______________________________________________
> openslide-users mailing list
> openslide-users at lists.andrew.cmu.edu
> https://lists.andrew.cmu.edu/mailman/listinfo/openslide-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.andrew.cmu.edu/pipermail/openslide-users/attachments/20130827/bd2c9163/attachment.html
More information about the openslide-users
mailing list