Machine Vision

cancel
Showing results for 
Search instead for 
Did you mean: 

Transfer large image through network

Hi all,
 
I need to transfer large image (around 200MB) through the network to the neighborhood PCs for processing. The time i have is very short (Say 4 seconds).
 
Since, i need to send the image to multiple PCs, i thought UDP will be helpful. But the LabVIEW UDP vis having limitation of 548 bytes reading for each run. So i need to run in a loop and get the image. Building the string also will be of great memory related task. So the time taken is very high (in the order of minutes). often, i am missing some of the bytes during the operation.
 
Then i have tried TCP/IP, planning to send to only one PC. There also when the size is more than 78MB, i am not able to send in single time. Is it so? But i have not seen any limitations in the documents. For 78 MB it take around 18 seconds. But the data is safe.
 
The great disadvantage of these two method is, i need to flatten as a string and and rebuild the image in the other end.
 
I have tried one more option also, using save as bmp, and read from the network. This work quite better compared to the other two. Time take to transfer 200MB image is 24 seconds ( 5 seconds to save in the same PC + 19 seconds to read through the network). Still it is far from my requirement. One advantage here is, i can read as image datatype it self.
 
I have used 100Mps LAN, yes, i can go far 1GPS. Then any other idea how to transfer these huge files in quick manner.
 
Thanks,
senthil kumar m
0 Kudos
Message 1 of 3
(3,507 Views)
Hey Senthil Kumar M,
 
The only other idea that I can suggest is splitting up your image, and have multiple ports to send the data out on. Try adding another ethernet card and try sending data out on multiple lines. This might speed up sending your very large image over the network. You could also try using a fiberoptic line. It all depends on what type of network you have and how much traffic is on your network. Maybe you can somehow isolate your point to point connections so you can get the fastest one way transfer. Hopefully this helps. Good luck on your application.
 
Regards,
DJ L.
0 Kudos
Message 2 of 3
(3,471 Views)
Senthil

You are using a 100Mbps lan which means that the theoretical maximum throughput is 12.5MB/s. It will take 16 seconds to transfer a 200MB image under ideal conditions. That is not even considering your UDP or TCP overhead. That is nowhere near the 4 second time constraint you placed on this application.

Why does your source image have to go over network to other PCs for propressing? Can you not acquire and process the image on a single PC? Moving that much data constantly (I assume you are doing it constantly) over a corporate network will have your IT department swarming down on you.

My recommendations for your application:
1) Move your image source into the PC that is doing the processing, removing the network bottleneck

If not 1), then
2) Use a lossless compression file format like PNG for saving instead of the much bloated BMP format
3) Upgrade your network to 1000Mbps and isolate it from the external domain to minimize network collisions

Hope this information helps

Johann

Message 3 of 3
(3,438 Views)