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