Login  Register

Re: AVI, Virtual Stack, >1GB boundery?

Posted by Michael Schmid on Nov 26, 2008; 3:25pm
URL: http://imagej.273.s1.nabble.com/AVI-Virtual-Stack-1GB-boundery-tp3693422p3693423.html

Hi Jesper,

ImageJ only supports AVI 1.0, which is limited to 2 GB.
AVI 2.0 is not supported, but it is possible that the first RIFF list  
of an AVI 2 is read - it has the AVI 1 format.

The AVI 2 specifications says that the first (AVI 1 compatible) RIFF  
list of an AVI 2 should be no more than 1 GB in size. Some AVI  
writers ignore this and write up to 2 GB (which is not problem for  
AVI 1 readers), others adhere to the specs.

So I suspect that you have an AVI 2.0 movie, and only the beginning  
is read.

Java does support long (64-bit) pointers in files, and if I remember  
it correctly the AVI reader uses long pointers, so it could address  
essentially arbitrary files sizes. The pointers and field lengths in  
the AVI 1 format have 32 bits, however. That's what causes the 2 GB  
limit of AVI 1.

Michael
________________________________________________________________

On 26 Nov 2008, at 16:00, JesperSP wrote:

> Hi everyone,
>
> I'm trying to analyze some very large AVI movies in ImageJ. I  
> thought I had
> everything covered when I found the "open as virtual stack" function.
> However, when I'm trying to open a 1.3GB AVI containing 15495  
> frames of
> 348x256 it stops exactly at frame 11934 (348x256*11934 = 1063176192  
> bytes
> corresponding to just below 1GB). I have tried to tell the plugin  
> that I
> only want to open frames 11900-15495, both as virtual and non-
> virtual stack
> and in this case it only opens frames 11900-11934. I managed to  
> save all the
> frames as TIFs in a folder and then I was able to open all a  
> virtual stack
> with all frames using the "Import"->"TIFF virtual stack..."  
> function. I then
> saved the stack as AVI with PNG compression which resulted in a  
> file of 552
> MB. I was able to load the resulting AVI file without any problems in
> ImageJ, both as virtual and non-virtual stack.
>
> My conclusion is that ImageJ (or Java in general?) cannot access  
> positions
> beyond 1GB of files (under windows XP 32Bit).
>
> I'm going to be analyzing a lot of these very large files (possibly  
> up to
> 14GB) in the future, so I would very much like to find a different
> workaround than saving all images as individual tifs or compressing  
> movies.
> Is there a way to read AVI's larger than 1GB in ImageJ? If it's  
> imposible
> under windows XP 32bit, is it then possible if I install a 64bit  
> operating
> system (e.g. UBUNTU 64bit?).
>
> Suggestions are very welcome ....
>
> Cheers,
> Jesper
>