I have an ultrasound device which produces digital video of 35-50 hz. This is streamed through a S-VHS port on the device onto a computer, where the resulting 25 hz stream is synchronized with other data.
Some of the frames in the resulting video have artefacts that look a lot like interlacing, but do not cover the whole height of the frame. Here is a screenshot of part of one such frame, red marks are added by me.
This happens only in some frames, and in different amounts. Sometimes it's the whole frame, sometimes the bottom 50%, sometimes 10%, etc.
I am not a video expert, but this reminds me of what I see when I take a photo of my TV screen: The screen is in the process of loading the next frame. Personally I wouldn't expect a streaming signal to behave in the same way as a display signal, but what do I know...
My questions for someone more expert: What causes these artefacts (which part of the setup, etc)? Is this to be expected for a setup like the one I mentioned? Is there anything I can do to prevent this?
+ Reply to Thread
Results 1 to 6 of 6
Upload a video sample that shows the problem.
But it does look like tearing (part of the displayed frame from one source frame, part from another) along with interlaced video like you describe, either during capture or during playback. If the ultrasound device is creating frame rates that vary from 35 to 50 Hz then you probably will have tearing problems since the s-video output has to be 50 fields per second which are then packaged as 25 frames per second (for PAL capture devices).
The frame rate within each recording/trial does not vary. Some of our ultrasound settings correspond to 54hz, other settings (for other investigations) correspond to 38hz, etc.
This video file (47,6 MB) is the original file stored in the ultrasound device, with the original frequency (38 hz): http://dl.dropbox.com/u/10671621/original%20Phillips%20f9920120423.AVI
This video file (6,8 MB) is the result of streaming to the computer, without deinterlacing: http://dl.dropbox.com/u/10671621/clip0000%20deint%20no.avi
This video file (11,1 MB) is the result of streaming WITH deinterlacing: http://dl.dropbox.com/u/10671621/clip0000%20deint%20yes.avi
This video file (12,1 MB) is the result of streaming WITH deinterlacing, using the opposite order: http://dl.dropbox.com/u/10671621/clip0000%20deint%20reversed.avi
Do these tell you anything?
It looks like the device is switching frame buffer in the middle of putting out fields (probably whenever a new field/frame has been collected) so you get tearing in the middle of a field. This is why some frames appear progressive, some interlaced, and some a mixture of the two. Even if you deinterlace you will be left with some torn frames.
Your interlaced video is bottom field first. Both the deinterlaced samples have been deinterlaced with the wrong field order. That is why you get that fast jerky motion. I don't know why the program you used didn't deinterlace one of them properly. Attached is an Xvid AVI that was deinterlaced using VirtualDub's deinterlace filter in Yadif mode, double frame rate, bottom field first. If you step through frame by frame you'll see torn frames.
Is there a reason you can't use the 38 fps AVI? What is your goal?
Last edited by jagabo; 24th Apr 2012 at 08:58.
Thank you. Do you think that it is the ultrasound device that is doing an unsatisfactory job here (switching frame buffer)? Or could it be a problem of the DV card in the computer?
The reason why we are trying to stream this properly to the computer, is that we need to synchronize the ultrasound videos with other data (force, muscle activity, etc). That cannot be done with in the ultrasound apparatus.
The ultrasound machine does have a DVI port, for connecting a second monitor. We are looking into grabbing that signal and converting it to a data stream. But that's probably another thread.
Otherwise you may just have to deinterlace after collecting all your data. But you'll still have tearing. The best deinterlacers are in AviSynth but you may not want to go that far. The interlaced clip, deinterlaced with QTGMC in AviSynth, encoded as h.264 in MP4.
In theory, you can remove the torn fields/frames but that's getting into some heavy lifting...