[Insight-developers] New ImageScanlineIterator

Bradley Lowekamp blowekamp at mail.nih.gov
Mon Apr 29 09:31:08 EDT 2013


Hello,

I am seeking suggestions for additional places where this new iterator could be beneficial.

I have just merged an new image iterator, which has given up to 3.5x ( VS8 in 256x256 image ) performance improvement in basic binary functor image filters such as the AddImageFilter. 

https://github.com/Kitware/ITK/commit/ab29cc59095d7448a1dbf1e09f96947036d2b118

The way to use the new iterator is basically like this:

    while ( !inputIt1.IsAtEnd() )
      {
      while ( !inputIt1.IsAtEndOfLine() )
        {
        outputIt.Set( m_Functor( inputIt1.Get(), inputIt2.Get() ) );
        ++inputIt2;
        ++inputIt1;
        ++outputIt;
        }

      inputIt1.NextLine();
      inputIt2.NextLine();
      outputIt.NextLine();
      progress.CompletedPixel();
      }

The performance gain is from the removal of any conditionals in the inner loop which enable additional compiler optimizations and only updating the progress on a per line basis.

If anyone knows of the filters with tight looks which could benefit from this new iterator please let me know!

Thanks,
Brad




More information about the Insight-developers mailing list